N первых простых чисел представляются в двоичной системе счисления и записываются

N первых обычных чисел представляются в двоичной системе счисления и записываются попорядку. Из приобретенной последовательности нулей и единиц формируется числовая последовательность, каждый элемент которой представляет количество нулей, идущих попорядку. Например, для N = 10 этими простыми числами являются 2, 3, 5, 7, 11, 13, 17, 19, 23, 29. Записанные попорядку двоичные представления этих чисел . Сформированная по данному правилу последовательность имеет вид 1, 1, 1, 1, 3, 2, 1, 1. Тогда для N = 1000 наибольший элемент вновь сформированной последовательности будет иметь значение

Задать свой вопрос
1 ответ
10

Код на python 3.5:
from itertools import groupby
n = 1000
primes = [2, 3]
i = 1
while True:
  if all((6 * i - 1) % p != 0 for p in primes):
    primes.append(6 * i - 1)
  if len(primes) == n:
    break
  if all((6 * i + 1) % p != 0 for p in primes):
    primes.append(6 * i + 1)
  if len(primes) == n:
    break
  i += 1
bin_string = ''.join(list(map(lambda p: bin(p)[2:], primes)))
lengths = [len(list(g)) for k, g in groupby(bin_string) if k == '0']
print(max(lengths))
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт