天上欧蒂娜 2022-10-24 20:24 采纳率: 66.7%
浏览 17
已结题

有关c如何判断素数的问题


#include<stdio.h>
void main()
{
    int n;
    int m=0;
    scanf_s("%d", &n);
    int i = n-1;
    for (;i > 1;i--)
    {
        if (n % i == 0)
        {
            m++;
        }
    }
    if (m == 1)
        {
            printf("不是素数");
        }
    else
        {
            printf("是素数");
        }
    
}

当我输入10的时候会判断素数,输入3和5都会判断是素数,我是哪里写错了呢

  • 写回答

1条回答 默认 最新

  • X-道至简 2022-10-24 20:31
    关注

    把 m==1 改成 m>0 就行了。 或者 在m++ 这句后面加上 break
    因为n % i == 0 这句 ,例如10 在i=2 ,5的时候都是执行了,m=2,你下面判断==1,肯定是不匹配了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月24日
  • 修改了问题 10月24日
  • 创建了问题 10月24日

悬赏问题

  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout