【发布时间】:2014-11-18 11:42:07
【问题描述】:
import sys,math
def Check_Prime(n) :
if n%2 and n<3 :
return False
else :
return all(n%p for p in range(3,int(math.sqrt(n))+1,2))
def Reduce(n) :
if Check_Prime(n) :
Reduce(n-1)
else :
return n
def main(*args,**kwargs) :
for __ in range(input()) :
l,b=map(int,sys.stdin.readline().split(' '))
l=Reduce(l)
b=Reduce(b)
print l*b
if __name__ == "__main__" :
main()
一旦Reduce() 函数中的条件失败,它就不会返回。
我尝试在 else 块内 print n 的值并成功打印它,但它未能在 else 块内返回该值。
【问题讨论】:
-
缩进在 Python 中是导入的;没有格式,我们无法判断出什么问题。请read the editing help。您还应该考虑阅读the style guide。
-
缩进实际上是存在的,只是没有放在代码块中,所以 StackOverflow 没有显示它。我什么都没猜到。
-
@jonrsharpe 我刚刚编辑了我的帖子...现在缩进了...
-
请参阅所有其他递归问题 - 你没有
return递归调用的值。 -
@DanielDarabos 现在缩进以适应 stackoverflow 以显示代码最初的样子...
标签: python python-2.7 recursion primes