![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
lanD |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 5.6.2006 Репутация: нет Всего: нет |
Программа неэффективна. Например, она анализирует четные числа больше 2, хотя очевидно, что они не могут быть простыми. Усовершенствуйте алгоритм поиска простых чисел.
|
|||
|
||||
igorold |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: 3 Всего: 17 |
Держи, студент
![]()
какие средства убыстрения поиска: 1. Формируется массив простых чисел 2. число проверяется на делитель только простого числа 3. если следующее простое число больше, чем значение/предыдущее простое число, то цикл прерывается поясню: возьмем число 29, если оно не делиться на 2, 3, 5, то дальше деление проверяться не будет ... 4. происходит выход из цикла проверок при нахождении первого делителя 5. можешь сделать еще одно убыстрение - после $value == 3 делать приращение +2, т.е. не проверять заведомо четные числа - попробуй сам сделать ... Это сообщение отредактировал(а) igorold - 6.6.2006, 09:03 -------------------- ... у семи нянек 14 сисек ... Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
lanD |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 5.6.2006 Репутация: нет Всего: нет |
Студентка
![]() Спасибо! Добавлено @ 09:47 Кстати, я это задание выполняла по книге "Освой сво Perl за 24 часа"! И я ещё не дошла до массивов :-) вот только начинаю... так что задание можно было выполнить с стандартными while, for, if.... ну и т.д. |
|||
|
||||
igorold |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: 3 Всего: 17 |
т.е. тебе надо сделать без массива?
тогда тебе надо использовать способы ускорения 3-5 сделаешь без массива или тебе помочь? ![]() ![]() Кстати, увеличение на 2 я сделал так:
Это сообщение отредактировал(а) igorold - 6.6.2006, 10:05 -------------------- ... у семи нянек 14 сисек ... Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
lanD |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 5.6.2006 Репутация: нет Всего: нет |
Нет спасибо ты и так помог, я уже сама дальше.
Если во время изучения у меня будут появляться кое-какие вопросы, я буду спрашивать если можно ![]() |
|||
|
||||
vumnik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 30.5.2006 Репутация: нет Всего: нет |
А вот мой вариант. Тоже на делителях и без массивов.
|
|||
|
||||
igorold |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: 3 Всего: 17 |
Хороший вариант, а теперь осталось только его оптимизировать ...
![]() -------------------- ... у семи нянек 14 сисек ... Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
lanD |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 5.6.2006 Репутация: нет Всего: нет |
Нужно модифицировать программу чтобы фигурка печаталась в вертикальном положении...
|
|||
|
||||
igorold |
|
||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: 3 Всего: 17 |
lanD, чтобы фигурка печаталась в вертикальном положении, т.е. каждый символ на новой строке, если я правильно понял, нужно после каждого символа фигуры вставлять (печатать) \n
т.е. строку
можно заменить на
соответственно и в конце вместо
вставить
ну и человечка переписать на
или так:
Это сообщение отредактировал(а) igorold - 7.6.2006, 08:18 -------------------- ... у семи нянек 14 сисек ... Putin here, Putin there, Putin almost everywhere! |
||||||||||||
|
|||||||||||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
igorold,
Ты на Perl пишешь, к чему здесь Сишные циклы? Используй foreach и постфиксную запись! Кстати, если помогаешь человеку, то пиши код с
Чтобы он сразу привыкал к хорошему стилю программирования на Perl. ![]() -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
lanD |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 5.6.2006 Репутация: нет Всего: нет |
||||
|
||||
igorold |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: 3 Всего: 17 |
sharq, а где вы увидели, что я не пишу
а насчет Ты на Perl пишешь, к чему здесь Сишные циклы? Используй foreach и постфиксную запись! так я не профи ... во-вторых человеку никто не отвечал ... а я ответил ... в третьих, а что этот цикл в перле не работает? а что такое постфиксная запись? а в 4-х на этом форуме я сам учусь ... -------------------- ... у семи нянек 14 сисек ... Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
sharq |
|
||||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
lanD, советую тебе писать все свои скрипты с
igorold в первом своем примере использовал эту прагму, посмотри в чем отличие + почитай perldoc strict и можешь воспользоваться поиском, здесь уже об этом говорилось. igorold, конечно работает, т.к. основной принцип Perl - ТимТоуди но зачем писать на перл, не используя его возможностей. в данном случае:
так и я тоже ![]() ![]() -------------------- [color=gray]There's More Than One Way To Do It[/color] |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |