关于#c语言#的问题:有两个测试点过不去

img


img

有两个测试点过不去,朋友们看看咋解决啊?

代码如下:


#include

int main(void)
{
    int m,n;
    int count=0,sum=0; 
    scanf("%d %d",&m,&n);
    
    int i;
    for(i=m;i<=n;i++){
        int j = 2;
        int flag = 1;
        for(j;j-1;j++){
            if(i%j == 0){
                flag = 0;
                break;
            }
        }
        if(flag){
            count++;
            sum += i;
        }
    }
    printf("%d %d",count,sum);
    
    return 0;
}

修改如下,供参考:

#include <stdio.h>
int main(void)
{
    int m, n;
    int count = 0, sum = 0;
    scanf("%d %d", &m, &n);
    int i;
    for (i = m; i <= n; i++) {
        //int j = 2;              修改
        int flag = 1;
        for (int j = 2; j < i; j++) {  //for (j; j < i - 1; j++) 修改
            if (i % j == 0) {
                flag = 0;
                break;
            }
        }
        if (flag && i != 1) {   //if (flag) 修改 排除 1 不是素数
            count++;
            sum += i;
        }
    }
    printf("%d %d", count, sum);
    return 0;
}

对m==n的情况单独判断一下

不知道你这个问题是否已经解决, 如果还没有解决的话:
题)


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^