Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2009, 23:47   #1
otlichniza
Новичок
Джуниор
 
Регистрация: 11.11.2009
Сообщений: 1
По умолчанию вывод совершенных числе в Pascal

Здравствуйте всем! Помогите, пожалуйста, написать программу, которая бы выводила на экран первые четыре совершенных числа (совершенные числа - числа, сумма делителей которых, кроме самого числа, равна этому числу. Примером простого числа является число 6 - оно делится на 1, 2, 3. при сложении получаем шесть) Эта программка нужна, чтобы получить зачет беременной одногруппнице. Надеюсь на вашу помощь!
otlichniza вне форума Ответить с цитированием
Старый 12.11.2009, 00:35   #2
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от otlichniza Посмотреть сообщение
Здравствуйте всем! Помогите, пожалуйста, написать программу, которая бы выводила на экран первые четыре совершенных числа (совершенные числа - числа, сумма делителей которых, кроме самого числа, равна этому числу. Примером простого числа является число 6 - оно делится на 1, 2, 3. при сложении получаем шесть) Эта программка нужна, чтобы получить зачет беременной одногруппнице. Надеюсь на вашу помощь!
Первые 4 совершенных числа - 6, 28, 496, 8128.
Напишите тупой перебор, суть такая:
Код:
s=0;
for i:=1 to n-1 do if n mod i=0 then inc(s,i);
if s=n then writeln(n);
Поскольку не указан ни язык программирования, ни пример собственных наработок, то дальше сами, основу решения я Вам дал.
А вообще эту задачу надо решать с использованием признака Эвклида-Мерсенна.

Последний раз редактировалось LeBron; 12.11.2009 в 10:37.
LeBron вне форума Ответить с цитированием
Старый 12.11.2009, 00:48   #3
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

На мой взгляд сдесь ошибка, давай пройдемся поэтапно:
предположим n=10, тогда s в итоге будет равняться 3, так как n делиться на 1,2,5, и если 3=10 (s=n) то результат = 10 (n); Хотя перебирая числа от 1 до 10, уже должна была быть 6...
Lemo вне форума Ответить с цитированием
Старый 12.11.2009, 10:37   #4
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от Lemo Посмотреть сообщение
На мой взгляд сдесь ошибка, давай пройдемся поэтапно:
предположим n=10, тогда s в итоге будет равняться 3, так как n делиться на 1,2,5, и если 3=10 (s=n) то результат = 10 (n); Хотя перебирая числа от 1 до 10, уже должна была быть 6...
Да, сейчас допишу те 2 буквы, которые пропустил.
LeBron вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В поисках совершенных абстракций atomicxp Общие вопросы по программированию, компьютерный форум 56 15.11.2009 03:04
Pascal - Задано число n неизвестной разрядности. Вычислить сколько цифр в этом числе Виолетта Помощь студентам 2 18.03.2009 07:17
Вывод текста(pascal) Dmtr Помощь студентам 1 29.05.2008 00:25
Нахождение совершенных чисел. Паскаль NikLik Помощь студентам 3 23.11.2007 22:19