Задача к ЕГЭ по информатике на тему «делители числа» №11

Найти на промежутке [123123; 321321] числа, которые нацело делятся на целую часть среднего арифметического своих делителей. В ответе через пробел запишите количество таких чисел и их произведение.

def average(n):  # делится ли на целую часть ср .ариф. делителей
 
    k, s = 0, 0
 
    for i in range(1, int(n ** 0.5) + 1):
 
        if n % i == 0:
 
            k += 1
 
            s += i
 
            if n // i != i:
 
                k += 1
 
                s += n // i
 
    if n % int(s / k) == 0:
 
        return True
 
    return False
 

 

 
counter, p = 0, 1
 
for i in range(123123, 321322):
 
    if average(i):
 
        counter += 1
 
        p *= i
 
print(counter, p)

Ответ: 5 352861289574854860800000000
Оцените статью
Я решу все!