python求约数的问题

Linuxwell 2009-05-09 08:45:35
这个函数求数字的最大约数,也会提示这个数是否为素数。
def showMaxFactor(num):
count=num/2
while count>1:
if num%count==0:
print'largest factor of %d is %d'% (num,count)
break
count-=1
else:
print num, "is prime"
#调用这个函数:
for i in range(10,30):
showMaxFactor(i)
#得到结果:
largest factor of 10 is 5
11 is prime
largest factor of 12 is 6
13 is prime
largest factor of 14 is 7
largest factor of 15 is 5
largest factor of 16 is 8
17 is prime
largest factor of 18 is 9
19 is prime
largest factor of 20 is 10
largest factor of 21 is 7
largest factor of 22 is 11
23 is prime
largest factor of 24 is 12
largest factor of 25 is 5
largest factor of 26 is 13
largest factor of 27 is 9
largest factor of 28 is 14
29 is prime
我的问题是代码中的count-=1是什么意思,因为count=num/2,所以我不懂count-=1的作用是什么?
...全文
563 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Linuxwell 2009-05-10
  • 打赏
  • 举报
回复
我当然知道是count=count-1,我的意思是在代码中起到什么作用。,为什么要这一步。
Linuxwell 2009-05-10
  • 打赏
  • 举报
回复
谢谢大家!!!
iambic 2009-05-10
  • 打赏
  • 举报
回复
去掉的话不就死循环了。
iambic 2009-05-10
  • 打赏
  • 举报
回复
汗……
就是个循环遍历啊。不去掉的话不就死循环了。
zhifeng543 2009-05-10
  • 打赏
  • 举报
回复
从num/2开始逆向遍历(count没运行一次减1),找到的第一个大于1的整数就是num的最大约数,否则就是素数。
iambic 2009-05-09
  • 打赏
  • 举报
回复
相当于:
count = count - 1

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧