#include
int main()
{
int n;
int sum=0;
int i=0;
int j=0;
scanf("d",&n);
for(i=0;ifor(j=2;j<=n;j++)//判断是不是素数?
{
if(i%j==0)
{
break;
}
if(i==j)
{
sum+=i;
}
}
}
printf("sum=%d\n",sum);
}
想用循环实现
想知道哪里错了,谢谢!
for(j=2;j<=n;j++)
改为
for(j=2;j<i;j++)
=======
for(i=0;i<n;i++)
改为
for(i=2;i<n;i++)
=========
scanf("d",&n);
改为
scanf("%d",&n);
#include<stdio.h>
int main()
{
int n;
int sum = 4;
int i = 0;
int j = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
for (j = 2; j <= i/2; j++)//判断是不是素数?
{
if (i % j == 0)
{
break;
}
if (i/2 == j)
{
sum += i;
}
}
}
printf("sum=%d\n", sum);
}
有几个点:
1.scanf那里不是d,改成scanf("%d",&n);
2.判断素数那里逻辑有问题
#include<stdio.h>
int main()
{
int n;
int sum=0;
int i=0;
int j=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
if(i < 2){
continue;
}
int prime = 0;
for(j=2;j * j<=i;j++)//判断是不是素数?
{
if(i % j == 0){
//不是素数,标记为1
prime = 1;
break;
}
}
if(prime == 0){
sum += i;
}
}
printf("sum=%d\n",sum);
}