решить на языке Python.Совершенным числом называется число, равное сумме своих делителей, меньших его самого. Например, 28=1+2+4+7+14. Определите, является ли данное натуральное число совершенным. Найдите все совершенные числа на данном отрезке (возможно, стоит применить идею решета Эратосфена).
Объяснение:
numb = int(input("Введите целое число: "))
delitellist = {1}
sumlist = 1
i = 2
while i * i <= numb and sumlist <= numb:
if (numb % i == 0):
sumlist += i + (numb//i if i != numb//i else 0)
delitellist.update({i, numb//i})
i += 1
if sumlist == numb:
print(*sorted(delitellist))
else:
print(0)
def check_perfect(number:int, dividers = []):
for i in range(1, number):
if number%i == 0:
dividers.append(i)
if sum(dividers) == number:
return 1
def get_div(num, div = []):
for i in range(1, num):
if num%i == 0:
div.append(i)
return div
def main():
number = int(input())
if check_perfect(number):
print(' '.join(str(num) for num in get_div(number)))
else:
print(0)
if __name__ == '__main__':
main()