任务描述本关任务:显示输入数字之内的完全数。 一个数整等于其所有因子之和(不含这个数本身),则称这个数为完全数。例如 6=1+2+3,所以 6 是完全数。
编程要求根据提示,在右侧编辑器补充代码,显示输入数字之内的完全数。如果没有完全数,请输出‘没有完全数!’
测试用例用户输入1000 输出 6 28 496
n = int(input())
a = []
for i in range(1, n):
s = 0
for j in range(1, i):
if i % j == 0 and j < i:
s += j
if s == i:
a.append(i)
if a:
print(' '.join(map(str,a)))
else:
print('没有完全数!')
运行结果:
【doge】
完全数就那么几个,如果只要求输出正确,完全可以这样搞
a=[6 ,28 ,496]
b=int(input())
for i in a:
if i<=b:
print(i,end=' ')
if b<6:
print('没有完全数!')
def perfect_num(m):
# 完全数函数
sum = 0
for i in range(1,m):
if m%i == 0:
sum = sum+i
return sum
n = int(input("请输入一个整数: "))
for item in range(1,n+1):
if item == perfect_num(item):
print(item)
python n = int(input("请输入数字范围: "))
python def is_perfect(number): sum = 0 for i in range(1, number): if number % i == 0: sum += i return sum == number
python flag = False for i in range(1, n+1): if is_perfect(i): print(i) flag = True if not flag: print("没有完全数!")
完整代码:
def is_perfect(number):
sum = 0
for i in range(1, number):
if number % i == 0:
sum += i
return sum == number
n = int(input("请输入数字范围: "))
flag = False
for i in range(1, n+1):
if is_perfect(i):
print(i)
flag = True
if not flag:
print("没有完全数!")