Вопрос по информатике:
Напишите программу, которая вводит натуральное число N и определяет является ли число N совершенным. Если можно с подробным или кратким объяснением
- 23.05.2018 22:55
- Информатика
- remove_red_eye 5971
- thumb_up 50
Ответы и объяснения 2
По определению совершенным числом называется то число, которое равно сумме своих делителей отличных от самого числа. Значит,чтобы решить задачу нам нужно найти сумму делителей числа и проверить равна ли она самому числу.
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.
- 24.05.2018 11:29
- thumb_up 21
Число считается совершенным, если оно равно сумме своих делителей, исключая себя самого. Для проверки, является ли число 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
Число не является совершенным
- 25.05.2018 06:09
- thumb_up 16
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.