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

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

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

> Зацикливание, Помогите
Artem7
сообщение 16.03.2012 12:13
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
IUnknown
сообщение 16.03.2012 12:33
Сообщение #2


a.k.a. volvo877
*****

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

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


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

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

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

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


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

 



- Текстовая версия 11.06.2024 18:47
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"