Задание 25. Информатика. ЕГЭ. Поляков-2597
- Просмотры: 116
- Изменено: 24 ноября 2024
Среди целых чисел, принадлежащих числовому отрезку \([3159; \,\, 31584]\), найдите числа, которые являются простыми. Ответом будет сумма цифр найденных чисел. (К. Амеличев)
Решение:
Python
def sieve(N):
a = [1]*(N+1)
a[0] = 0
a[1] = 0
for x in range(2, int(N**0.5) + 1):
if a[x]:
for i in range(x**2, N+1, x):
a[i] = 0
primes = []
for x in range(2, N+1):
if a[x]:
primes.append(x)
return primes
def num2arr(n):
return list(map(int, str(n)))
arr = sieve(31584)
for i in range(len(arr)):
if arr[i] >= 3159:
break
s = 0
for k in range(i, len(arr)):
s += sum(num2arr(arr[k]))
print(s)
Ответ: 58326