判断一个正整数是否为完数。完数定义:一个数的所有因子(包括1)之和等于它自身,这个数就是完数。比如6=1+2+3,6是完数。
输入格式:
例如:输入一个正整数 6
输出格式:
输出:
6=1+2+3
代码如下,有帮助的话采纳一下哦!
n = int(input("输入一个正整数: "))
print(str(n)+"="+"1",end="")
for i in range(2,n):
if(n % i == 0):
print("+"+str(i),end="")
def judge_(n):
return [i for i in range(1, n) if n % i == 0]
n = int(input(">>>"))
res = judge_(n)
if sum(res) == n:
print(f"{n}是完数,其表达式为:{n}={'+'.join(map(str,res))}")
else:
print(f"{n}不是完数!")
--result
>>>6
6是完数,其表达式为:6=1+2+3
def function(num: int) -> bool:
"""
:param num:
:return:
"""
arr = []
for i in range(num + 1):
for j in range(i + 1, num + 1):
if i * j == num:
arr.append(i)
arr.append(j)
return 2 * num == sum(arr)
if __name__ == '__main__':
number = int(input("输入一个数:"))
if function(number):
print(number, "是完数")
else:
print(number, "不是完数")
n = int(input("输入一个正整数:"))
list = []
for i in range(1, n):
if n % i == 0:
list.append(i)
s = sum(list)
list0 = list[:-1]
if n == s:
print(f"{n}=", end = "")
for i in iter(list0):
print( str(i) + "+", end = "")
print(list[-1])
else:
print("输入的不是完数")
代码:
# 输入数字
n = int(input("请输入一个正整数:"))
# 定义列表存放所有因数
fac = []
# 循环(寻找因数并存放进列表)
for i in range(1, n+1):
if n % i == 0:
fac.append(i)
# 判断是否为完数
s = 0
for j in range(len(fac)-1):
s += fac[j]
if s == n:
print('是完数')
else:
print('不是完数')
运行结果:
望采纳。谢谢!