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

ktoyatokoyinter ktoyatokoyinter    3   27.08.2019 19:20    0

Ответы
Khghchcghcg123321 Khghchcghcg123321  05.10.2020 23:18
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))
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика