dotcpp的习题
计算n以内的所有素数和
编写程序,计算输入的n以内的所有素数之和。
输入格式: "%d"
输出格式:"sum=%d\n"
#include
int main()
{
int n;
scanf("%d",&n);
int sum=0,x,i;
int flag=0; //素数为1
for(x=2;x<=n;x++)
{
flag=0;
if(x==2)
{
flag=1;
}
for(i=2;iif(x%i==0)
{
break;
}
else if(x%i!=0)
{
flag=1;
break;
}
}
if(flag==1)
{
sum+=x;
}
}
printf("sum=%d\n",sum);
return 0;
}
运行错误,但不清楚为什么?
调试程序的时候在n=10时该程序会把9算成素数,但我不清楚为什么,求解?
求原因。
//判断是否为素数
#include<stdio.h>
int main()
{
int i,x;
scanf("%d",&x);
if(x==2) puts("yes!");
if(x>2)
{
for(i=2;i<x;i++)
if(x%i==0)
{
puts("no!");
break;//一旦判断不是,跳出循环
}
if(i==x) puts("yes!");//如果是的话,for循环一定执行到了i=x
}
else puts("no!");
}
x%i不为0不应该退出循环,为0才退出循环且flag为变为0
flag初始值应该是1,按照题主的思路
写的都不够好 循环条件应该是到开方n或者到n/2
不知道什么原因我试了上述的方法,仍然不管用。同时在我调试时发现n=10时9会被当做素数?不清楚