询问一个python寻找完全数的程序
topNum=raw_input("Whatistheuppernumberfortherange:")topNum=int(topNum)theNum=2whileth...
topNum=raw_input("What is the upper number for the range:")
topNum=int(topNum)
theNum=2
while theNum<=topNum:
divisor=1
sumOfDivisors=0
while divisor<theNum:
if theNum%divisor==0:
sumOfDivisors=sumOfDivisors+divisor
divisor=divisor+1
if theNum==sumOfDivisors:
print theNum,"is perfect"
if theNum<sumOfDivisors:
print theNum,"is abundant"
if theNum>sumOfDivisors:
print theNum,"is deficient"
theNum=theNum+1
这段寻找完全数的程序,在python上运行,结果总是不显示结果,运行不完,什么地方出错了呀,求教呀。。。 展开
topNum=int(topNum)
theNum=2
while theNum<=topNum:
divisor=1
sumOfDivisors=0
while divisor<theNum:
if theNum%divisor==0:
sumOfDivisors=sumOfDivisors+divisor
divisor=divisor+1
if theNum==sumOfDivisors:
print theNum,"is perfect"
if theNum<sumOfDivisors:
print theNum,"is abundant"
if theNum>sumOfDivisors:
print theNum,"is deficient"
theNum=theNum+1
这段寻找完全数的程序,在python上运行,结果总是不显示结果,运行不完,什么地方出错了呀,求教呀。。。 展开
2个回答
展开全部
while的退出条件 是theNum<=topNum 可是在整个while中这个两个变量都没变过 theNum=theNum+1写在最后什么意思。。。 while只能管到divisor=divisor+1
追问
我把两个空行去掉了,但还是一直在运行,开始输入的topNum似乎没有作用呀。。。
追答
topNum=raw_input("What is the upper number for the range:")
topNum=int(topNum)
theNum=2
while theNumsumOfDivisors:
print theNum,"is deficient"
theNum=theNum+1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询