为什么我输入17会得到三个Yes!

img

img


为什么我输入17会得到三个Yes!

你这是要判断素数吧,我把你的代码稍微改一改。

#include <stdio.h>
#include <math.h>
int main(void)
{
    int n, jug = 1; //jug判断是否为素数
    printf("Input n:");
    scanf("%d", &n);
    if (n <= 1) //1不是素数,0和负数也都不是素数
        jug = 0;
    if (n > 3) //3是素数,从4开始检测因子
    {
        for (int i = 2; i < sqrt(n); ++i)
        {
            if (n % i == 0) //存在除了1和本身的另一个因子
                jug = 0;
        }
    }
    if (jug)
        printf("YES!");
    else
        printf("NO!");
    return 0;
}

你这是判断质数吗?应该把输出yes放到循环外面,而且输出no之后直接return0