这个素数求和函数哪里有问题,希望大家看看

img


就是不知道哪里错了,输出的时候显示sum为0那不就没有做加法吗

给你封装好的函数,专门用来确定一个数是否为素数,以后直接copy 就好:


int sushu(int n)
{
    if(n <= 3)
        return n > 1;

    for(int i = 2; i * i <= n; i++)
       if(n%i == 0)
           return 0;

    return 1;
}

函数中循环不能是cnt<=i,只能是cnt<i
否则当cnt等于i的时候,i%cnt肯定是0 啊,所以你一个数都没有加上

cnt<=i改为cnt<i

第5行:for(cnt = 2;cnt <= i; cnt++) 中间的条件错误了,应该时 cnt < i ; 如果 cnt = i , i % cnt == 0 恒成立,那就都不是素数。