询问一个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上运行,结果总是不显示结果,运行不完,什么地方出错了呀,求教呀。。。
展开
 我来答
wangyiwenbuct5
2016-03-21
知道答主
回答量:1
采纳率:0%
帮助的人:1146
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zifu6ge
2015-03-03
知道答主
回答量:40
采纳率:0%
帮助的人:7.8万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式