Самый быстрый способ перечислить все простые числа ниже NPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Самый быстрый способ перечислить все простые числа ниже N

Сообщение Гость »


Это лучший алгоритм, который я мог придумать.

Код: Выделить всё

def get_primes(n):
numbers = set(range(n, 1, -1))
primes = []
while numbers:
p = numbers.pop()
primes.append(p)
numbers.difference_update(set(range(p*2, n+1, p)))
return primes

>>> timeit.Timer(stmt='get_primes.get_primes(1000000)', setup='import   get_primes').timeit(1)
1.1499958793645562
Можно ли сделать это еще быстрее?

У этого кода есть недостаток: поскольку числа неупорядоченный набор, нет никакой гарантии, что Numbers.pop() удалит наименьшее число из набора. Тем не менее, это работает (по крайней мере для меня) для некоторых входных чисел:

Код: Выделить всё

>>> sum(get_primes(2000000))
142913828922L
#That's the correct sum of all numbers below 2 million
>>> 529 in get_primes(1000)
False
>>> 529 in get_primes(530)
True


Источник: https://stackoverflow.com/questions/206 ... es-below-n
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Самый быстрый способ перечислить все простые числа ниже N
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Самый быстрый способ перечислить все простые числа ниже N
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Идеальные цифры и простые простые числа - Python
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Идеальные цифры и простые простые числа - Python
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Самый быстрый способ найти все простые числа до 4 миллиардов
    Anonymous » » в форуме C++
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»