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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2007, 03:42   #1
Juhn
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 36
По умолчанию нахождение полных чисел

Доброго времени суток !
Срочно нужна помощь.
Задача: Полные числа - это такие числа которые равны всем своим делителям (за исключением самого себя). Пример: 6=3+2+1 (6 делится на 3, 2 и 1). Найти все полные числа от 1 до 10000. Ответы даны: 6, 28, 496, 8128.
Не имею представления как написать такую программу в паскале, что бы она нашла эти числа.
Помогите пожалуйста, буду очень благодарен.
Заранее спасибо !
Juhn вне форума Ответить с цитированием
Старый 09.12.2007, 09:37   #2
Abbatik
Форумчанин
 
Аватар для Abbatik
 
Регистрация: 11.11.2007
Сообщений: 136
По умолчанию

Код:
for i:=1 to 10000 do begin
k:=0;
for j:=1 to i-1 do begin
if i mod j=0 then k:=k+j;
end;
if k=i then writeln(i);
end;
ICQ - 446037211
Abbatik вне форума Ответить с цитированием
Старый 09.12.2007, 12:26   #3
Juhn
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 36
По умолчанию

Abbatik спасибо
Я в паскале не особо, можно ещё написать какая строчка должна быть в var перед этим кодом ещё, (там переменные вроде нужны) ?
И можно обьяснить что значит i:=, k:=, и строчка где есть команда mod.
Просто мне нужно не просто программу написать , но ещё и описать кажду строчку, что каждая строчка делает, какие команды выполняет. Очень нужно
А за программу большое спасибо, только строки опиcать осталось
Juhn вне форума Ответить с цитированием
Старый 09.12.2007, 12:57   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Переставь одно слово в программе, а то работать не будет.
Код:
for i:=1 to 10000 do
   begin
    k:=0;
    for j:=1 to i-1 do
       if i mod j=0 then
          begin
            k:=k+j;
          end;
       if k=i then write(i,' ');
     end;
А насчет остального скачай любой учебник по Паскалю и читай. Если ты этого не знаешь, ко и код задачи тебе ни к чему.
puporev вне форума Ответить с цитированием
Старый 09.12.2007, 13:00   #5
Juhn
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 36
По умолчанию

Спасибо поищу что нибудь, только скажите пожалуйста в var что будет integer, что real (i,k,j ?)
Juhn вне форума Ответить с цитированием
Старый 09.12.2007, 13:11   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

integer это целые числа: 1,0,2,5,-9,-3 ..., а real - вещественные - 1,25;0.568... Естественно, что у тебя i,j,k:integer;
puporev вне форума Ответить с цитированием
Старый 09.12.2007, 13:14   #7
Juhn
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 36
По умолчанию

Спасибо.
Juhn вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запрос который бы подсчитывал количество полных лет начиная с того года который указан в данных мне базах PereCCC Помощь студентам 8 15.05.2008 16:24
нахождение суммы четных чисел в массиве Ci_novice Общие вопросы C/C++ 1 23.12.2007 12:11
Нахождение совершенных чисел. Паскаль NikLik Помощь студентам 3 23.11.2007 22:19
вычисление суммы чисел, кратных 3 из последовательности, состоящей из 10 чисел, заранее заданных Белка Помощь студентам 3 27.10.2007 11:53
Нахождение чисел в таблице базы данных на Delphi!, Помогите пожалуй Рина БД в Delphi 0 13.03.2007 19:21