Задание 25. Информатика. 2023-19
- Просмотры: 701
- Изменено: 1 февраля 2025
Пусть
Напишите программу, которая перебирает целые числа, большие
Формат вывода: для каждого из
Например, для числа
Решение:
Python
def divisors(n: int) -> set[int]:
s = set()
for x in range(2, int(n**0.5)+1):
if n % x == 0:
s.add(x)
s.add(n//x)
return s
def is_prime(n: int) -> bool:
if n == 1:
return False
if n in (2, 3):
return True
for x in range(2, int(n**0.5)+1):
if n % x == 0:
return False
return True
def prime_divisors(n: int) -> set[int]:
div = divisors(n)
if div:
return set(filter(is_prime, div))
n = 550001
k = 0
while k < 5:
if pd := prime_divisors(n):
S = sum(pd)
if S % 10 == 1:
print(n, S)
k += 1
n += 1
Ответ: