我正在编写一个代码,这就是我到目前为止所做的一切。我被困在这一点上。任何帮助将不胜感激。用于布尔值函数perfect(n)的程序,其根据参数n的值是否是完整数来计算并返回布尔值True或False。
def main():
numPerfects = eval(input("How many perfect numbers do you want to find?"))
perfectsFound=0
possiblePerfect=1
while(perfectsFound < numPerfects):
if (perfect(possiblePerfect)):
perfectsFound += 1
print ("{0:0}}.{1:0}".format(perfectsFound, possiblePerfect))
#end if
#end while
#end main
main()
答案 0 :(得分:0)
您可以通过检查“可以”除以“数字”的所有值是否加起来为“数字”的两倍来实现此目的:
def isperfect(n):
factors = [1]+[i for i in range(2,n+1) if n%i == 0]
if sum(factors) == 2*n:
return True
return False
for i in range(1000):
if isperfect(i):
print(i)
,结果是:
6
28
496