Задание 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