Syn_Wll 2022-03-23 17:03 采纳率: 80%
浏览 30
已结题

关于while循环中的质数问题

问题遇到的现象和发生背景

想写个程序判断一个数字是否为质数。

问题相关代码,请勿粘贴截图
num = int(input("请输入一个数字: "))
i = 2

while i < num-1:
    if num % i == 0:
        print("这个数不是质数。")
        break
    else:
        i += 1
    print("这个数是质数。")
    break
运行结果及报错内容

像输入数字为9、27、51这种,就会显示错误。

我的解答思路和尝试过的方法

判断一个数字num是否为质数,只需要遍历2至num-1里是否有数可为其约数。

我想要达到的结果

正常输入一个数字,能够判断这个数字是否为质数。(请务必告知本代码错误地方,和修改代码

  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2022-03-23 17:14
    关注

    第10行有误,不能在循环中就判定这个数是质数,必须while循环比较结束后才能确定。
    当循环结束后,如果i值是num,表明2到num-1都不是num的约束,才能说明num是质数
    根据你的代码逻辑,应该判断到i<num。但实际循环最小情况应该是 if i*i <= num :,不需要比较那么多次
    修改如下

    num = int(input("请输入一个数字: "))
    i = 2
    while i < num:
        if num % i == 0:
            print("这个数不是质数。")
            break
        i += 1
    if i==num:
         print("这个数是质数。") 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月31日
  • 已采纳回答 3月23日
  • 创建了问题 3月23日

悬赏问题

  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?