Среди чисел, больших 520000, найти такие, сумма всех делителей которых, не считая единицы и самого числа, образует число-палиндром (например, число 1221: если его «перевернуть», получается то же самое число). Вывести первые пять чисел, удовлетворяющих вышеописанному условию, справа от каждого числа вывести его максимальный делитель.
Что за числа? Как выполнить задание по информатике?
Arnfinn пометил как избранный вопрос 01.11.2023
1 Ответ
def divisors(n):
d=[]
k=2
while k*k <= n:
if n%k == 0:
d.append(k)
k2 = n//k
if k2 > k: d.append(k2)
k += 1
return d
def palindrom(s):
t=»
for i in range(len(s)): t=s[i]+t
return s==t
n=520001
k=0
while k < 5:
d = divisors(n)
if len(d) > 0 and palindrom(str(sum(d))):
print(n,max(d))
k += 1
n += 1
520211 16781
520993 47363
521653 47423
521947 16837
522077 22699
Arnfinn ответил на вопрос 12.01.2022