(Н. Плотицын) Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку \([3; \, 1000000]\) последовательности подряд идущих составных чисел длиной не менее \(90.\) Для каждой найденной последовательности запишите в порядке возрастания простые числа, стоящие на границах данных последовательностей.
В ответе запишите эти пары простых чисел в порядке возрастания первого числа в паре.
Решение:
Python
def sieve(n):
nums = [True] * (n + 1)
nums[0] = nums[1] = False
primes = []
lim = int(n**0.5) + 1
for i in range(2, n + 1):
if nums[i]:
primes.append(i)
if i < lim:
for j in range(i * i, n + 1, i):
nums[j] = False
return primes
pr = sieve(10**6)
for x, y in zip(pr, pr[1:]):
if y - x - 1 > 89:
print(x, y)
Ответ:
\(360653 \,\, 360749\)
\(370261 \,\, 370373\)
\(396733 \,\, 396833\)
\(492113 \,\, 492227\)
\(604073 \,\, 604171\)
\(838249 \,\, 838349\)
\(860143 \,\, 860239\)
\(927869 \,\, 927961\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене