Untitled
unknown
python
4 years ago
823 B
5
Indexable
#
# 4 апреля 2022
#
# На вход подается два натуральных числа a и b.
# Напишите программу. которая находит натуральное
# число из отрезка [a,b] с максимальной суммой делителей.
def dsum(x):
s = 1+x
for i in range(2,x//2+1):
if x%i == 0: s = s+i
return s
def maxDSum(a,b):
n = 0
j = 0
for i in range(a,b+1):
y = dsum(i)
if y > n: n,j = y,i
return j, n
print(maxDSum(1, 15))
print(maxDSum(1, 20))
# второй вариант
def dsum2(n): return sum(x for x in range(1, n+1) if n%x==0)
def maxDSum2(a,b): x = max(range(a, b+1), key=dsum2); return x, dsum2(x)
print(maxDSum2(1, 15))
print(maxDSum2(1, 20))
Editor is loading...