c语言判断该数是否为素数为啥我的执行结果都是一个答案

img

img

img

第7、8行交换一下顺序。
m还没输入呢,你就开根号啊

解决没?

因为k是个浮点数,你应该是没正确处理
而且确实

img


总之按你的思路仿写了一个

#include <stdio.h>
#include <math.h>
int main()
{
    int n, i;
    scanf("%d", &n);
    double m = sqrt(n);
    printf("%f\n", m);
    for (i = 2; i < ((int)m + 1); i++)
    {
        if (!(n % i))
        {
            printf("%d\n", i);
            break;
        }
    }
    if (i == ((int)m + 1))
        printf("prime");
    else
        printf("not prime");
}