用c语言判断一个数是否为素数

用c语言判断一个数是否为素数

问题描述:

若用户输入负数,浮点数,1,甚至是字母,字母与数字的组合,该怎么处理?麻烦给出所有可能的测试数据和最后的优化代码

scanf("%d",&a);
你看下scanf的返回值。如果是0就是输入有误,>0的话就输入的正确。。

#include <stdio.h>

int main(void)
{
    int m, i;
    float n;

    if (scanf("%f", &n)!=1){
        printf("输入的不是数字!\n");
        return 0;
    }
    if (n!=(int)n){
        printf("输入的不是整数!\n");
        return 0;
    }
    m = (int)n;
    if (m<=1){
        printf("不是素数!\n");
        return 0;
    }
    for (i = 2; i < m; i++) //2到(m-1)的数去除m
    {
        if (m % i == 0) // 判断能否整除
            break;
    }
    if (i == m)
        printf("是素数!\n");
    else
        printf("不是素数!\n");
    return 0;
}


img


如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮

CSDN专家-天际的海浪 写的很好呀,2也可以的