qq_57253908
2021-10-09 00:47
采纳率: 100%
浏览 66

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

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

  • 好问题 提建议
  • 收藏

3条回答 默认 最新

  • CSDN专家-sinjack 2021-10-09 00:59
    已采纳

    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


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

    评论
    解决 无用
    打赏 举报
  • dyf0130 2021-10-09 08:41

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题