Advertisement
Guest User

Проверка: cумма простых чисел, начиная с 3 = 2^N - 1

a guest
Aug 3rd, 2014
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.83 KB | None | 0 0
  1. #!/usr/local/bin/python3
  2. import math
  3.  
  4. def prime_nums(N):
  5.   "Возвращает все простые от 2 до N"
  6.   deads = set(range(2, N))
  7.   # последовательно уберем все числа, которые делятся на 2..sqrt(n)
  8.   for i in range(2, int(math.sqrt(N))):
  9.     # если числа нет в множестве deads - значит оно не простое
  10.     if i in deads:
  11.       deads -= set(range(2*i, N, i))
  12.   return list(deads)
  13.  
  14. nums = prime_nums(2000000)
  15. # проверка гиротезы "cумма простых чисел, начиная с 3 = 2^N - 1"
  16. summ = 0
  17. for i in range(1, len(nums)):
  18.   summ += nums[i]
  19.   lg = math.log(summ+1)/math.log(2)
  20.   # выводим похожие
  21.   if lg-math.floor(lg) < 0.0001:
  22.     print('{0}: {1} as hex 0x{1:x}'.format(nums[i], summ))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement