程序运行问题
def showmaxfactor(num):count = num // 2
while count > 1:
if num % count == 0:
print('%d最大的约数是%d:'%(num,count))
count -= 1
else:
print('%d是素数!'% num)
num = int(input('请输入一个数:'))
showmaxfactor(num)
运行结果是:
请输入一个数:25
25最大的约数是5:
25是素数!
这个程序出了什么问题?哪位大神帮忙解答一下啊? 判断素数应该写在while循环外 只有当所有数都遍历过 没有约数,这个数才是素数~
【已经验证通过】看样子您是只需要查询最大约数,帮你改了~
def showmaxfactor(num):
count = num // 2
flag = 1;
while count > 1:
if num % count == 0:
print('%d最大的约数是%d:'%(num,count))
flag = 0;
break
count -= 1
if flag:
print('%d是素数!'% num)
else:
print('%d不是素数!'% num)
num = int(input('请输入一个数:'))
showmaxfactor(num) 591821661 发表于 2021-3-25 21:16
【已经验证通过】看样子您是只需要查询最大约数,帮你改了~
谢谢你啊,我知道在哪出问题了,While循环里,少了一个break,只要找到最大约数就直接退出,不会再执行else的语句了。
页:
[1]