Вопрос задан 18.07.2023 в 16:57. Предмет Информатика. Спрашивает Ткач Вася.

ПОМОГИТЕ ПОЖАЛУЙСТА Совершенным называется число, равное сумме всех своих делителей, меньших его

самого (например, число 6=1+2+3). Напишите программу, которая вводит натуральное число N и определяет, является ли число N совершенным. Входные данные Входная строка содержит натуральное число N . Выходные данные Если число N – совершенное, программа должна вывести в одну строчку через пробел все делители этого числа, меньшие N . Если число несовершенное, программа должна вывести 0. Примеры Входные данные 28 Выходные данные 1 2 4 7 14 Входные данные 29 Выходные данные 0 П.С. ПИТОН!!!!!!!!!!!!!
0 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()

Объяснение:

На случай, если сайт сломает табуляции в коде (А он их сломает), ниже представлен скриншот оригинала кода. Программа протестирована.


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, помогу! Ниже приведена программа на Python, которая определяет, является ли число N совершенным, и выводит все его делители, меньшие N, или 0 в случае несовершенного числа.

python
def find_divisors(n): divisors = [] for i in range(1, n): if n % i == 0: divisors.append(i) return divisors def is_perfect_number(n): divisors = find_divisors(n) if sum(divisors) == n: return divisors else: return [0] # Ввод числа N try: N = int(input("Введите натуральное число N: ")) if N <= 0: raise ValueError() except ValueError: print("Ошибка: введите корректное натуральное число.") else: result = is_perfect_number(N) print(*result)

Программа спрашивает у пользователя входное натуральное число N и затем вызывает функцию is_perfect_number для определения, является ли число совершенным. Если число совершенное, программа выводит все его делители, меньшие N, разделенные пробелами. В противном случае выводится только 0.

Например, для входных данных 28 программа выведет 1 2 4 7 14, а для входных данных 29 программа выведет 0.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос