![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
0x00000000 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 27.8.2008 Репутация: нет Всего: -1 |
Помогите добавить в эту програмку вывод не всех простых чисел а только каждое 10000000 число
тоесть n1 = 10000000 по счету n2 = 20000000 ..... n45 = 450000000 прошли еще 10милионов простых и вывели второе и так до 450 милионов тоесть 45 простых чисел((
|
|||
|
||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
замени :
на
исправлено Это сообщение отредактировал(а) mes - 7.2.2009, 00:38 |
||||
|
|||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
Работа программы ускорится, если проверять деление не на все числа от 2 до sqrt(n), а только на уже найденные простые числа в этом интервале (решето Эратосфена)
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Очень много памяти жрать это будет... Для начала, можно просто исключить четные числа большие 2-х ![]() |
|||
|
||||
Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 11 Всего: 88 |
выход за пределы диапазона для типа int . mes, может ты так хотел сказать:
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
спасибо за исправление, каюсь .. напортачил ![]() |
|||
|
||||
0x00000000 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 27.8.2008 Репутация: нет Всего: -1 |
вот поиск через другой алгоритм только что тут что там нехватает обычныйх типов инт и лонг инт((((
что можно сделать?
Это сообщение отредактировал(а) 0x00000000 - 12.2.2009, 00:38 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
1. делать свой тип (например, int512_t)
2. делать через массив десятичных знаков (очень долго работать будет). Может ты задание не так понял? Потому что то, что ты хочешь является вполне конкретной научной задачей, для которой используют распределенные вычисления и супер-компьютеры. |
|||
|
||||
Ln78 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 25.11.2006 Репутация: нет Всего: 15 |
Памяти не так много, но и даже с этой модификацией программа будет работать ОЧЕНЬ долго. А уж если проверять вообще все, то НЕРЕАЛЬНО долго. По сути, нам нужно найти 450 миллионов простых чисел. Оценка сверху (по формуле Чебышёва) даёт, что проверить надо порядка 11 миллиардов чисел (10 миллиардов не хватит). Проверяем до квадратного корня, т.е. примерно до 105 тысяч. А простых чисел, меньших 105000 примерно 9100, т.е. памяти потребуется не так много, порядка 10 тысяч 32-разрядных целых чисел. Использовать, вероятно, лучше всего 64-разрядные целые числа. Очевидно, что в цикле, если начать с 3, идти нужно с шагом 2. Может ещё можно подумать, как убыстрить расчёт. P.S. Забавно, что самым сложным для топикстартера в этой задаче показалось добавить условие на печать ![]() |
||||
|
|||||
Ln78 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 25.11.2006 Репутация: нет Всего: 15 |
Вот такой вариант, наверное, не самый оптимальный. Для простоты я всё поместил в одну функцию, в том числе и выходной массив nOutPrime. Проверял при NSelectedForUse = 100000, вроде правильно работает.
Это сообщение отредактировал(а) Ln78 - 10.2.2009, 10:56 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |