Как найти совершенное число в паскале
Перейти к содержимому

Как найти совершенное число в паскале

  • автор:

Совершенные числа

Число совершенно, если оно равно сумме всех своих делителей, кроме самого себя. Пример: 6 = 1 + 2 + 3. Найдите все совершенные числа от 1 до 10000 и выведите их на экран.

Подсказка: необходимо найти все делители от 1 до тестируемого числа. Делителем числа называется число, которое делит данное без остатка ( a mod b = 0 ).

Алгоритм решения задачи:

  1. Каждое число от 1 до 1000 поочередно делить на все целые числа от 1 до этого числа. На самом деле достаточно до половины заданного числа.
  2. Найти сумму всех делителей и сравнить с самим числом. Если сумма и число равны, то последнее является совершенным.

Программа на языке Паскаль:

const N = 10000; var i, j, sum: integer; begin for i := 2 to N do begin sum := 0; for j := 1 to i div 2 do begin if i mod j = 0 then sum := sum + j; end; if sum = i then writeln(i, ' - perfect!'); end; end.

Результат выполнения программы:

6 - perfect! 28 - perfect! 496 - perfect! 8128 - perfect!

Как найти совершенное число в паскале

«Натуральное число называют совершенным, если оно равно сумме своих простых делителей, не считая его самого (например, 6=1+2+3 —соверешнное число*). Составьте алгоритм, проверяющий, является ли введённое число совершенным»
*задачка из довольно-таки старого учебника, в настоящее время 1 не считается простым числом.
Это задачка в целом.
Просьба у меня может не совсем обычная— я не прошу дать мне код программы, я прошу помочь мне разобраться.
Итак, если разбивать программу на этапы то их получится 3:
1) Раскладываем число на простые делители.
2) Суммируем простые делители.
3) Сравниваем получившуюся сумму и заданное число.
Натолкните меня, пожалуйста, на мысль—каким образом можно разложить число на простые делители? Для этого нам потребуется сначала сгенерировать простые числа в диапазоне [2..n], где n— заданное число.
Каким образом их можно сгенерировать? Если можно, не код программы, а мысль )

Регистрация: 13.10.2007
Сообщений: 2,740

1. Действительно, сначала нужно найти все простые чичла от 2 до n, хотя можно и чуть меньше, т.к. если мы например задали число 6 то сумма первых 6 простых чисел равна 29 (включая единицу). Решение этой задачи явидел пару раз на форуме и почти во всех учебниках.
2. В цикле типа

while sum

считаем сумму простых чисел по-порядку. Если в конце цикла sum=N, то ДА, если нет, то НЕТ.
Форумчанин
Регистрация: 11.11.2007
Сообщений: 136
в общем простое число у которого два делителя: единица и оно само!

for i:=1 to n do begin k:=0; for j:=1 to n do begin if i mod j=0 then k:=k+1; end; if k=2 then else end;

ICQ - 446037211
Форумчанин
Регистрация: 22.11.2007
Сообщений: 224

спасибо, разобрался.
Но есть 1 нюанс:
В википедии написано что совершенное число состоит из суммы своих делителей(не важно,простые они или нет). В задаче же указано, что делители должны быть простыми числами.
Я решил согласиться с википедией( кода меньше строчек на 10):

program soversh; var n,i,sum:longint; begin writeln('vvedite 4islo'); read(n); i:=1; while i
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нахождение суммы четных чисел в массиве Ci_novice Общие вопросы C/C++ 1 23.12.2007 12:11
задача:Паскаль и ряд чисел Фибоначчи SEREG@ Помощь студентам 20 16.12.2007 20:05
нахождение полных чисел Juhn Паскаль, Turbo Pascal, PascalABC.NET 6 09.12.2007 13:14
Нахождение подпапок. Паскаль NikLik Помощь студентам 0 25.11.2007 21:51
Нахождение чисел в таблице базы данных на Delphi!, Помогите пожалуй Рина БД в Delphi 0 13.03.2007 19:21

Найти совершенные числа

Author24 — интернет-сервис помощи студентам

Вывести все совершенные числа от 1 до 99 (совершенным называется число, равное сумме всех своих делителей, меньших, чем само это число. Пример: 6 = 1+2+3).

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Найти совершенные числа в матрице
Всем доброго времени суток Помогите с задачей пожалуйста, очень нужно, желательно срочно! Найти.

Найти все совершенные числа от 1 до 100
1. Найти все совершенные числа от 1 до 100. pashqa`, вновь обращаю ваше внимание на правила.

Найти и напечатать все совершенные числа в интервале от 2 до х.
Число, равное сумме всех своих делителей, включая единицу, называется совершенным. Найти и.

Для заданного числа Н(1<Н<10000) написать программу, которая находит все совершенные числа, меньшие Н
Число называется совершенным,если сумма его делителей (кроме него самого) равна этому числи.

100 / 100 / 86
Регистрация: 20.10.2013
Сообщений: 186

Лучший ответ

Сообщение было отмечено Lanatel как решение

Решение

1 2 3 4 5 6 7 8 9 10
var i,j,s : integer; begin for i:=1 to 99 do begin s:=0; for j := 1 to i-1 do if i mod j=0 then s:=s+j; if s=i then write(i,' '); end; end.

Совершенные числа

Author24 — интернет-сервис помощи студентам

Совершенные числа
помогите написать в паскале функция возвращает true, если натуральное n равно сумме своих.

Совершенные числа
дан массив целых чисел. есть ли в нем совершенные члены?

Совершенные числа.
Помогите решить задачу на Паскале plz:: Найти все совершенные числа в диапазоне от а до b. .

задачка на совершенные числа
Даны натуральное число n, целые числа а1, . аn расмотреть все отрезки последовательности а1.

Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181

il-93, Вверху страницы есть кнопка Поиск. Наберите там Совершенные числа, и выбирайте что Вам больше подойдет.

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Найти совершенные числа
Помогите плиз, понимаю, что программа легкая, но сам не догоняю как это сделать Задача: составить.

Совершенные числа в массиве
Здравствуйте, форумчане. 🙂 Помогите с задачкой: Вводятся числа в массив, а программа должна.

Напечатать все совершенные числа
Натуральное число М называется совершенным, если оно равно сумме всех своих делителей, включая.

Получить все совершенные числа меньше N.
Натуральное число называется совершенным,если оно равно сумме всех своих делителей, за исключением.

Или воспользуйтесь поиском по форуму:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *