2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 Быстрая проверка небольших чисел на простоту на экзамене
Сообщение15.08.2006, 16:12 
Аватара пользователя
Приведите пример способа быстрого нахождения простых чисел на определенном отрезке.
Лично я знаю несколько (в основном, все работают по принципу "решета" ), но все они занимают довольно много времени.

 
 
 
 
Сообщение15.08.2006, 16:25 
Аватара пользователя
Сначала решето, чтобы отсеять числа с маленькими простыми делителями, а затем перебор отставшихся с каким-нибудь быстрым вероятностным тестом простоты типа Миллера-Рабина.

 
 
 
 
Сообщение15.08.2006, 16:50 
Аватара пользователя
Сейчас кое-что почитал про этот тест :!: По-моему, он займет больше времени, чем простое деление всех сомнительных чисел. Конечно, если числа очень большие, то понятно - он полезен, но если числа, ну скажем, трехзначные, то - довольно сложный.

 
 
 
 
Сообщение15.08.2006, 17:56 
Аватара пользователя
:evil:
А с трех- четырехзначными проще всего проверить в таблице (вбитой в программу).

 
 
 
 
Сообщение16.08.2006, 09:28 
Аватара пользователя
По какой таблице? На экзамене же ничего не будет! :wink:

 
 
 
 
Сообщение16.08.2006, 09:38 
Аватара пользователя
Это на каком, интересно, экзамене, просят найти все простые числа на некотором отрезке?

 
 
 
 
Сообщение16.08.2006, 09:39 
Аватара пользователя
вступительный в ГУ-ВШЭ

 
 
 
 
Сообщение16.08.2006, 09:41 
Аватара пользователя
И какого типа отрезок (порядок)?

 
 
 
 
Сообщение16.08.2006, 09:45 
Аватара пользователя
задание такое: Сколько простых чисел расположено в промежутке (84; 102)
Понятно: задание несложное при наличии времени, но его как раз-таки и не хватает! Я просто хочу найти такой способ, чтобы не вычислять каждое простое число, а сразу находить их количество.

 
 
 
 
Сообщение16.08.2006, 09:56 
Аватара пользователя
Ну, это явно методом решета надо делать, даже проще. Выписать все числа из промежутка, можно сразу опускать те, которые явно не простые (сразу виден делитель). Далее, надо использовать простой факт, что если число $x$ имеет делители, то хотя бы один из них не превосходит $\sqrt{x}$. А значит, в данном случае надо проверить только делимость на простые числа до 10.

 
 
 
 
Сообщение16.08.2006, 09:57 
Здесь подойдет обычный метод решета. Вычеркиваем все чётные, потом делящиеся на три, на пять и на семь. Оставшиеся простые - 83, 89, 97.

 
 
 
 
Сообщение16.08.2006, 09:59 
Аватара пользователя
Это именно для данного случая? Как я понял, то если числа находятся в пределах ста, то корень из ста будет 10, значит остается проверить все числа до 10?

 
 
 
 
Сообщение16.08.2006, 10:02 
AchilleS писал(а):
Это именно для данного случая? Как я понял, то если числа находятся в пределах ста, то корень из ста будет 10, значит остается проверить все числа до 10?

Проверить на простые меньше 10.

 
 
 
 
Сообщение16.08.2006, 10:08 
Аватара пользователя
Именно. А другого способа нет. В основном остается проверить 7-9 чисел в аналогичных заданиях - это отнимает около 5-7 минут. А там счет идет чуть ли не на секунды.

 
 
 
 
Сообщение16.08.2006, 10:18 
Когда числа в пределах 100000, лучшего алгоритма нет. Все мудрёные алгоритмы более экономны при проверке больших чисел на простоту. Конечно для специального вида чисел есть алгоритмы апроверки на простоту специально для таких чисел.

 
 
 [ Сообщений: 16 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group