(Л. Шастин) Последовательность Люка – это последовательность чисел, в которых каждое последующее число образуется из суммы двух предшествующих ему чисел. Первые два числа в последовательности Люка: \(2, \, 1.\) Найдите все простые числа Люка, принадлежащие отрезку \([10^6; \, 10^9].\) Для каждого найденного числа выведите сначала номер числа в последовательности Люка, а затем само число.
Решение:
Python
from math import isqrt
def is_prime(n):
if n <= 2:
return n == 2
if n & 1 == 0:
return False
for x in range(3, isqrt(n) + 1, 2):
if n % x == 0:
return False
return True
a, b = 2, 1
n = 2
while b <= 10**9:
a, b = b, a + b
n += 1
if 10**6 <= b <= 10**9 and is_prime(b):
print(n, b)
Ответ:
\(32 \,\, 3010349\)
\(38 \,\, 54018521\)
\(42 \,\, 370248451\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене