Самый эффективный код для первых 10000 простых чисел?
Я рекомендую сито, либо Sieve of Eratosthenes, либо tuning Sieve of Atkin.
Решето или Эратосфен, вероятно, самый faster интуитивный метод поиска performance списка простых чисел. В основном performance вы:
- Запишите список чисел от 2 до любого желаемого предела, скажем, 1000.
- Возьмите первое незачеркнутое число (для первой итерации это 2) и вычеркните из списка все числа, кратные этому числу.
- Повторяйте шаг 2, пока не дойдете до конца списка. Все числа, которые не вычеркнуты, являются простыми.
Очевидно, что существует efficiency довольно много оптимизаций, которые algorithm могут ускорить работу этого performance алгоритма, но это основная perfomance идея.
Решето Аткина использует performance-tuning аналогичный подход, но, к prime-number сожалению, я недостаточно algorithms знаю о нем, чтобы объяснить perfomance его вам. Но я знаю, что алгоритм, который fast я привел, занимает 8 секунд, чтобы performance-tuning вычислить все простые числа algorithm до 1000000000 на древнем slow Pentium II-350
Сито Эратосфена slow Исходный код: http://web.archive.org/web/20140705111241/http://primes.utm.edu/links/programs/sieves/Eratosthenes/C_source_code/
Решето Аткина android-performance Исходный код: http://cr.yp.to/primegen.html
performance
algorithm
primes
Самый эффективный код для первых 10000 простых чисел?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.