Задать вопрос
24 мая, 13:20

Напишите программу, которая вводит натуральное число N и определяет является ли число N совершенным. Если можно с подробным или кратким объяснением

+1
Ответы (2)
  1. 24 мая, 13:27
    0
    По определению совершенным числом называется то число, которое равно сумме своих делителей отличных от самого числа. Значит, чтобы решить задачу нам нужно найти сумму делителей числа и проверить равна ли она самому числу.

    var

    sum, N, i:integer;

    begin

    readln (N) ; / / читаем число с клавиатуры

    //Проверяем делатели до N-1, т. к. нам нужны делители не равные

    //самому числу

    for i:=1 to N-1 do

    if N mod i = 0 then//Если i является делителем N, то ...

    sum:=sum+i; / / ... прибавляем его к сумме делителей

    / / Проверяем равна ли сумма делителей числа самому числу.

    if sum = N then

    writeln ('Число совершенное')

    else

    writeln ('Число не совершенное') ;

    end.
  2. 24 мая, 15:50
    0
    Число считается совершенным, если оно равно сумме своих делителей, исключая себя самого. Для проверки, является ли число N совершенным, полагаем будущую сумму делителей равной 1 (на единицу число всегда делится) и последовательно делим N на числа, начиная от 2 и заканчивая N/2.

    Если число делится без остатка на очередной делитель, добавляем его к сумме. После завершения цикла делений сравниваем сумму с N и в случае равенства объявляем число N совершенным. В начале алгоритма проверяем, чтобы N было больше 1, в противном случае сразу объявляем число не совершенным.

    var

    i, n, s:longint;

    begin

    Write ('Введите натуральное число: ') ; Read (n) ;

    if n=1 then Writeln ('Число 1 не является совершенным')

    else begin

    s:=1;

    for i:=2 to (n div 2) do

    if (n mod i) = 0 then s:=s+i;

    if s=n then Writeln ('Число является совершенным')

    else Writeln ('Число не является совершенным')

    end

    end.

    Тестовое решение:

    Введите натуральное число: 33550336

    Число является совершенным

    Введите натуральное число: 543252

    Число не является совершенным
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Напишите программу, которая вводит натуральное число N и определяет является ли число N совершенным. Если можно с подробным или кратким ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы