这段代码怎么通过不了

img


#include <stdio.h>
int ff(int n)
{
int i = 2;
while (i < n)
{
if (n % i == 0)
{
n = 0;
break;
}
else i++;
}
return n;
}
int main()
{
int n, m, i;
int sum;
scanf_s("%d %d",&m,&n);
if (m > n) {
for (sum = 0, i = n; i <= m; i++)
{
sum = sum + ff(i);
}
}
else if (m < n) {
for (sum = 0, i = m; i <= n; i++)
{
sum = sum + ff(i);
}
}
else sum = ff(m);
printf("%d\n",sum);
return 0;
}

判断素数的函数中,先判断一下 n是否小于2,1不是素数,如下

img

另外,如果你的输出如果需要输出\n的话,就用上面老师的方法,n前面需要用两个斜杠:

img

输出\n时,需要加转义

printf("%d\n",sum);
改为:
printf("%d\\n",sum);
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

注意1不是素数,最后的输出也改了一下

#include <stdio.h>
int ff(int n)
{
    int i = 2;
    while (i < n)
    {
        if (n % i == 0)
        {
            n = 0;
            break;
        }    
        else 
            i++;
    }
    if(n == 1)
        n = 0;
    return n;
}
int main()
{
    int n, m, i;
    int sum;
    scanf("%d %d",&m,&n);
    if (m > n) {
        for (sum = 0, i = n; i <= m; i++)
        {
            sum = sum + ff(i);
        }
    }
    else if (m < n) {
        for (sum = 0, i = m; i <= n; i++)
        {
            sum = sum + ff(i);
        }
    }
    else 
        sum = ff(m);
        printf("%d\\n",sum);
    return 0;
}