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

Напишите программу, которая вводит натуральное число N и определяет является ли число N совершенным. Если можно с подробным или кратким объяснением
Гость
Ответ(ы) на вопрос:
Гость
По определению совершенным числом называется то число, которое равно сумме своих делителей отличных от самого числа. Значит,чтобы решить задачу нам нужно найти сумму делителей числа и проверить равна ли она самому числу. 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.
Гость
Число считается совершенным, если оно равно сумме своих делителей, исключая себя самого. Для проверки, является ли число 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 Число не является совершенным
Не нашли ответ?
Ответить на вопрос
Похожие вопросы