想写个程序判断一个数字是否为质数。
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直接放到循环里面,能对才怪
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!