关于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里是否有数可为其约数。

我想要达到的结果

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

第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("这个数是质数。") 

这个数是不是质数,好歹得循环完了才能知道吧,你把print直接放到循环里面,能对才怪

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632