用c语言 编程计算并输出m以内最大的10个素数之和 m的值由主函数传给形参

谢谢 急用!
2024-12-14 09:50:12
推荐回答(4个)
回答1:

//用c语言
编程计算并输出m以内最大的10个素数之和
m的值由主函数传给形参
#include
"stdio.h"
#include
"stdlib.h"
#include
"math.h"
int
shushu(long
n)
{long
i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
return
0;
return
1;
}
long
sum(long
n)
{long
he=0,i,t=0;
for(i=n;i>=2&&t<10;i--)
if(shushu(i))
{he=he+i;
t++;printf("第%d个素数是:%d\n",t,i);}
return
he;
}
main()
{long
m;
printf("请输入m的值\n");
scanf("%d",&m);
printf("总和是:%ld",sum(m));
system("pause");
}

回答2:

#include
#include
int prime(int m)
{
int i;
int n;
int k=0;
int s=0;
int judge=0;
for(n=m;n<=m&&n>=1;n--)
for(i=2;i if(n%i==0)judge=1;
if(judge!=1)
k=k+1;
while(k<=10)
s=s+n;
return s;
}
main()
{
int m;
int s;
printf("请输入测试值m:");
scanf("%d",&m);
s=prime(m);
printf("%d",s);
}

回答3:

//用c语言 编程计算并输出m以内最大的10个素数之和 m的值由主函数传给形参

#include "stdio.h"
#include "stdlib.h"
#include "math.h"
int shushu(long n)
{long i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
return 0;
return 1;
}

long sum(long n)
{long he=0,i,t=0;
for(i=n;i>=2&&t<10;i--)
if(shushu(i))
{he=he+i; t++;printf("第%d个素数是:%d\n",t,i);}
return he;
}
main()
{long m;
printf("请输入m的值\n");
scanf("%d",&m);
printf("总和是:%ld",sum(m));
system("pause");
}

回答4:

# include
int sum(int x)
{ int i,j,k=2,a[50]={1,2},sum=0;
for(i=3;i<=x;i++)
{ for(j=2;j if(i%j==0)
break;
else if(j+1==i)
a[k++]=i;
}
for(i=k-1;i>k-11;i--)
sum+=a[i];
return sum;
}
void main()
{int m,s;
printf("m=");
scanf("%d",&m);
s=sum(m);//10个素数之和
printf("%d\n",s);//打印10个素数之和
}