2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Быстрый алгоритм нахождения большого простого числа
Сообщение17.03.2012, 14:10 


27/12/11
34
Подскажите быстрый алгоритм нахождения большого простого числа. Желательно на Delphi

 Профиль  
                  
 
 Re: Быстрый алгоритм нахождения большого простого числа
Сообщение17.03.2012, 19:42 


24/05/09

2054
Насколько большого?

 Профиль  
                  
 
 Re: Быстрый алгоритм нахождения большого простого числа
Сообщение17.03.2012, 21:03 
Аватара пользователя


31/10/08
1244
by_trojan
Кнут том второй глава 4.5.4

 Профиль  
                  
 
 Re: Быстрый алгоритм нахождения большого простого числа
Сообщение18.03.2012, 22:04 


27/12/11
34
Alexu007 в сообщении #549457 писал(а):
Насколько большого?


до 10.000

 Профиль  
                  
 
 Re: Быстрый алгоритм нахождения большого простого числа
Сообщение18.03.2012, 22:39 
Заслуженный участник


09/09/10
3729
by_trojan
Тьфу, это ж рази большое? Если до 10'000, то в таблице гляньте: http://oeis.org/A000040/a000040.txt — первые сто тысяч простых чисел.

 Профиль  
                  
 
 Re: Быстрый алгоритм нахождения большого простого числа
Сообщение18.03.2012, 22:56 


24/05/09

2054
topic55331.html

тут аж целых три исходника на С решета Эрастофена: с байтами, битами и с интеллектуальным методом оптимизации. Реально за секунды находят простые числа размерностью в миллиарды, особенно третий.

 Профиль  
                  
 
 Re: Быстрый алгоритм нахождения большого простого числа
Сообщение20.03.2012, 19:10 
Заслуженный участник


08/04/08
8562
Согласно гипотезе Крамера (она не доказано, но можете считать ее за эмпирический факт, либо очень вероятное явление), расстояние между простыми $p_n,p_{n+1}$ оценивается как $O( \ln ^2 p_n)$ - что очень мало. Поэтому можно тупо делать так: выбираете число $a$, возле которого ищете простое число, строите множество $\{a,a+1,...,a+K\},K=O(\ln ^2 a)$ проходите по нему сначала мелким решетом, а оставшееся небольшое количество простых можете тестировать на простоту уже по одному обычными алгоритмами.
Скорость алгоритма не оценивал.

by_trojan в сообщении #549832 писал(а):
до 10.000
аааа,... а я для $p>10^{10}$ предлагаю :-)
Погуглите решето Эратосфена, решето Сундарама.

 Профиль  
                  
 
 Re: Быстрый алгоритм нахождения большого простого числа
Сообщение20.03.2012, 21:05 


24/05/09

2054
Алгоритм шифрования RSA для своей работы требует наличия двух простых чисел, если хоть одно из чисел непростое - расшифрованное число не будет равно исходному (по крайней мере это работает для простых чисел до 50000 - проверял лично). Если это работает и для больших простых чисел, можно использовать RSA "не по назначению" - для проверки на простоту:

1. Берём одно гарантированно простое число требуемого размера, второе число X, которое мы хотим проверить.

2. Зашифровываем с помощью этих двух чисел любое соразмерное тестовое число.

3. Расшифровываем. Если тестовое и расшифрованное числа совпадают - очевидно и наше второе число X является простым.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group