(Е. Джобс) Для интервала [33333;55555] найдите числа, которые кратны сумме своих простых делителей.
232 просмотра
(Е. Джобс) Для интервала [33333;55555] найдите числа, которые кратны сумме своих простых делителей. В качестве ответа приведите числа, для которых сумма простых делителей больше 250, – сначала найденное число, затем сумму его простых делителей. Примечание: само число в качестве делителя не учитывается.
def dev(n): s = set()
for i in range(2, int(n**0.5)+1):
if n % i == 0:
s = s | {n//i, i}
return sorted(s)
def is_prime(n):
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
for i in range(33333, 55555+1):
lst = dev(i)
k = [a for a in lst if is_prime(a)]
if sum(k) > 250:
if i % sum(k) == 0:
print(i, sum(k)) #38086 278;44998 302;53332 268