Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Pascal
Показать сообщение отдельно

Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата ManHack:
Как с этим бороться? »
Оптимизировать алгоритм
Расставь комментарии пожалуйста. Или опиши применяемый метод.
Цитата ManHack:
Код: Выделить весь код
while (divisor <= root) and prim do begin
 if i mod divisor <> 0 then
 prim := false;
 divisor := divisor + 1;
 end;
»
Т.е. для проверки n'ой цифры на предмет простоты необходимо проделать
T=n/2+n/3*2)+E{n/i-2} 5<i<sqrt(n) сравнений? где i - простое. E - сумма.
сравнений?
Не лень алгоритму будет подниматься каждый раз снизу вверх проходя каждый каждый 3 раз 1 лишний цикл, каждый 5 ый - 3 и т.д. ?
Я подвожу к той мысли, что в памяти мы вроде как не сильно ограничены. Примени массив простых чисел и сверяй с ним! Зачем по 100 раз совершать ненужные действия? Для i=123 будут проверены ВСЕ! числа включая все кратные 2,3,5,7,11,13,17,19,23 и т.д. Не проще ли сразу на них проверить?

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 22:50, 01-09-2009 | #3

Название темы: Pascal