Натуральное число называется совершенным, если оно равно сумме всех своих собственных делителей, т.е. делителей отличных от самого числа. Примером совершенного числа является, например, 6=1+2+3.Напишите программу, позволяющую вычислить, когда наступит следуюций совершенный год.

14 Апр 2020 в 19:40
126 +1
0
Ответы
1

Совершенные числа имеют вид 2^(p-1)*(2^p-1), где оба множителя простые числа и 2^p-1 - числа Мерсенна.

Для нахождения следующего совершенного числа можно воспользоваться циклом и проверять числа вида 2^(p-1)*(2^p-1), начиная с p=2:

def is_prime(n)
if n < 2
return Fals
for i in range(2, int(n**0.5) + 1)
if n % i == 0
return Fals
return Tru
def next_perfect_number()
p =
while True
if is_prime(p) and is_prime(2**p - 1)
perfect_number = 2**(p-1) * (2**p - 1
yield perfect_numbe
p +=
perfect_numbers = next_perfect_number(
for i in range(5): # Печатаем первые 5 совершенных чисе
print(next(perfect_numbers))

Этот код выведет первые 5 совершенных чисел. Теперь мы можем использовать эту логику для нахождения более крупных совершенных чисел.

18 Апр в 14:00
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 90 620 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир