两百万一下的质数求和问题
为什么这样写,得到的结果不对?
#include <STDIO.H>
#include <MATH.H>
//判断质数
int f(int n)
{
int temp=sqrt(n),i;
for (i=2;i<=temp;++i)
{
if (!(n%i))break;
}
if (i<=temp) return 0;
else return n;
}
int main()
{
int i,sum=0;
for (i=2;i<2000000;++i)
{
sum=sum+f(i);
}
printf("%d\n",sum);
return 0;
}