求大神用C语言写写程序,不会了,谢谢啦

2025-02-27 12:27:36
推荐回答(3个)
回答1:

代码贴出,供大家参考

#include
unsigned char f(unsigned int a)
{
unsigned int i;
unsigned temp=a/2+1;
if(a==2)
{
return 1;
}
if(a<2)
{
return 0;
}
for(i=2;i<=temp;i++)
{
if(a%i==0)
{
return 0;
}
}
return 1;
}

void main(void)
{
int n,k,flag=0;
long sub=0;
printf("输入一个[10,500]上的正整数\n");
scanf("%d",&n);
if(n>500)flag=1;
if(n<10) flag=1;
if(flag==0)
{
for(k=0;k<=n;k++)
{
if(f(k))
{
// printf("%d\n",k);
sub+=k;
}
}
}
switch(flag)
{
case 0:printf("SUM=%9d\n\n",sub);break;
case 1:printf("-1\n");break;
}
getchar();
}

回答2:

int f(int k)
{
int i;
for(i=2;i if(k%i==0)
return 0;
return 1;
}

main()
{
int n,m,i,sum=0;
int f(int k);
scanf("%d",&n);
i=n<10||n>500;
switch(i)
{
case 1:printf("-1");return 0;
case 0:for(m=2;m<=n;m++)
if(f(m))
sum+=m;break;
}
printf("sum is %d\n",sum);
return 0;
}

回答3:

#include 
#include 
#include 

int f(int k)
{
int i;
switch(k)
{
case 1: return 0; break;
case 2: return 1; break;
default:
for(i = 2; i < k; i++)
{
if(k % i == 0)
return 0;
}
}

return 1;
}

int main()
{
int n;
int i;
int sushuhe = 0;
scanf("%d", &n);
if(n < 10 || n > 500)
{
printf("-1\n");
return -1;
}
for(i = 1; i <= n; i++)
{
if(f(i) == 1)
sushuhe += i;
}
printf("answer is %d\n", sushuhe);
return 0;
}

各个数字均为素数的整数和意义不明,我按范围内的素数求和做的,有问题再追问