IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Зацикливание, Помогите
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Мужской

Репутация: -  0  +


Вот написал программу для нахождения 4 совершенных чисел на отрезке, но почему то когда ввожу 1000 то происходит зацикливание (возможно и в других случаях просто не проверял больше)

Program sovershenie;
Var n,i,k,j,s:longint;
Begin
write('Введите n= ');readln(n);
While k<>4 do
Begin
For i:=2 to n do
Begin
s:=0;
For j:=1 to n do
if (i mod j = 0)and(i<>j) then s:=s+j;
if s=i then begin writeln('Совершенное число = ',i);k:=k+1;end;
end;
end;
readln;
End.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


А что, K при каких-то условиях станет равно 4, чтобы выйти из цикла? Не станет, в интервале 2 .. 1000 всего 3 совершенных числа. Вот цикл и будет крутиться вечно, в попытках найти четвертое, несуществующее... Зачем тебе вообще цикл While - непонятно. Убери его.

P.S. Этот алгоритм поиска совершенных чисел подходит только для небольших интервалов. Чем интервал шире - тем дольше будет осуществляться поиск. Тогда совершенные числа стоит искать вот так

Сообщение отредактировано: IUnknown -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Artem7   Зацикливание   16.03.2012 16:13
IUnknown   А что, K при каких-то условиях станет равно 4, что…   16.03.2012 16:33
Artem7   А что, K при каких-то условиях станет равно 4, чт…   16.03.2012 16:37
TarasBer   > В том то и дело что мне преподаватель сказал …   16.03.2012 17:35
Artem7   > В том то и дело что мне преподаватель сказал…   17.03.2012 10:38
TarasBer   > Спасибо но я замутил вот так Фигню ты замути…   17.03.2012 16:14
Artem7   > Спасибо но я замутил вот так Фигню ты замут…   17.03.2012 17:33
TarasBer   никого зависона если что опять же идёт по новому …   17.03.2012 20:03
Artеm   да он станет верным тогда когда уберешь ограничени…   17.03.2012 21:05
TarasBer   > да он станет верным тогда когда уберешь огран…   17.03.2012 21:37
Artеm   > да он станет верным тогда когда уберешь огра…   17.03.2012 23:02
IUnknown   Да не должна она искать еще 2... Программа должна …   18.03.2012 16:25
Artem7   Да [b]не должна она искать [color=red]еще 2... Пр…   18.03.2012 16:52
TarasBer   Во, теперь верно написал.   18.03.2012 17:44
Artem7   Спасибо всем за помощь)))просто не правильно понял…   18.03.2012 17:51


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 21:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name