C语言 求小于等于N以内的素数之和。越简单越好,谢谢!
答案:2 悬赏:0 手机版
解决时间 2021-11-19 14:08
- 提问者网友:泪痣哥哥
- 2021-11-19 06:22
C语言 求小于等于N以内的素数之和。越简单越好,谢谢!
最佳答案
- 五星知识达人网友:不甚了了
- 2021-11-19 06:48
main()
{
int i,j,n;
int sum;
sum=0;
scanf("%d",&n);
for (i=3; i<=n; i++)
{
// 为什么是sqrt(i),思考一下
for (j=2; j<=sqrt(i); j++)
{
// i被j整除,显然不是素数了
if (i%j == 0) break;
}
// i不能被2~sqrt(i)间的数整除,素数也
if (j > sqrt(i))
{
sum += i;
}
}
printf("%d",sum);
}追问第一层循环里的i应该赋值为2吧,或者sum=2;追答是的,漏了
{
int i,j,n;
int sum;
sum=0;
scanf("%d",&n);
for (i=3; i<=n; i++)
{
// 为什么是sqrt(i),思考一下
for (j=2; j<=sqrt(i); j++)
{
// i被j整除,显然不是素数了
if (i%j == 0) break;
}
// i不能被2~sqrt(i)间的数整除,素数也
if (j > sqrt(i))
{
sum += i;
}
}
printf("%d",sum);
}追问第一层循环里的i应该赋值为2吧,或者sum=2;追答是的,漏了
全部回答
- 1楼网友:十鸦
- 2021-11-19 07:19
//本程序演示求N之内的素数及和(指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数)
#include
#include "math.h"
#define N n
main()
{
int i,j,n;
int line,s=0,a[N],sum;
printf("输入素数范围");
scanf("%d",&n);
for(i=2;i a[i]=i;
for(i=2;i for(j=i+1;j {
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0) //这里就是进行素数的判断
a[j]=0;}//a[j]=0使不是素数的时候,退出循环
printf("\n");
for(i=2,line=0;i {
if(a[i]!=0)
{printf("%-5d",a[i]);
s++;
line++;}
if(line==10)
{printf("\n"); //一行数满十个,换行
line=0;} //line清零,继续下个循环
}
printf("\n个数:%d\n" ,s);
printf("素数和%d\n",sum);
}
#include
#include "math.h"
#define N n
main()
{
int i,j,n;
int line,s=0,a[N],sum;
printf("输入素数范围");
scanf("%d",&n);
for(i=2;i
for(i=2;i
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0) //这里就是进行素数的判断
a[j]=0;}//a[j]=0使不是素数的时候,退出循环
printf("\n");
for(i=2,line=0;i
if(a[i]!=0)
{printf("%-5d",a[i]);
s++;
line++;}
if(line==10)
{printf("\n"); //一行数满十个,换行
line=0;} //line清零,继续下个循环
}
printf("\n个数:%d\n" ,s);
printf("素数和%d\n",sum);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯