решить на языке Python.Совершенным числом называется число, равное сумме своих делителей, меньших его самого. Например, 28=1+2+4+7+14. Определите, является ли данное натуральное число совершенным. Найдите все совершенные числа на данном отрезке (возможно, стоит применить идею решета Эратосфена).

sanyaleleckov sanyaleleckov    1   04.12.2021 15:34    1

Ответы
zvarichevgenija zvarichevgenija  04.12.2021 15:40

Объяснение:

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)

ПОКАЗАТЬ ОТВЕТЫ
milubel milubel  04.12.2021 15:40

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()

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика