Паскаль. Программа странно получилась

интернет Компьютеры программирование Наука pascal

program sovpoisk;
var i,n,c,y:word;
begin
writeln('VVOD N');
read(n);
for i:=2 to n do begin
c:=0;
for y:=1 to n div 2 do
if i mod y = 0 then c:=c+y;
if c=i then writeln(i);
end;
end.
---
Программа для поиска совершенных чисел в заданном диапазоне от 1 до N.
Т.е. 6, 28 и т.д.
задаю 29, а выводит 28
Т.е. 6 пропускает.
Ставлю 100 - программа вообще выводит пустое окно.
Т.е. я думал, что поставлю значение 1000 и он мне найдет все совершенные числа в этом диапазоне.



Примечание:
Недогуру, ничего страшного.
Развлекайтесь =)

Примечание:
Недогуру, спасибо. Я в блок-схеме так и написал, а код написал с ошибкой =)
Ответы:
Быть может, (n div 2) и (i mod y) в скобках поставить? И, кажись, одного end в конце не хватает... Алгоритм, вроде, правильный...
for y:=1 to n div 2  do
if i mod y = 0 then c:=c+y;
if c=i then writeln(i);
Или нет... =) Запутался совсем... Жена еще разными вопросами отвлекает... Да и ДР у меня сегодня... Слегка нетрезв... И разговорчив... =)))
for y:=1 to i div 2  do - так цикл короче получится...


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.