Задача к ЕГЭ по информатике на тему «одна функция» №6

Алгоритм вычисления значения функции F (a,b)  , где a  и b  – целые неотрицательные числа, задан следующими соотношениями:

F (0,0) = 0;

F (a,b) = F (a− 1,b) + b  , если a > b  » class=»math» src=»/images/inform/quest/quest-4485-6.svg» width=»auto»>; </p>
<p class= F (a,b) = F (a,b − 1) + a  , если a ≤ b  и b > 0  » class=»math» src=»/images/inform/quest/quest-4485-9.svg» width=»auto»>. </p>
<p class= Укажите количество таких целых неотрицательных чисел a  , для которых можно подобрать такое b  , что F (a,b) = 5555555555555  .

Если начать подставлять случайные a  и b  в функцию, то станет очевидно, что F (a,b) = a ⋅b.  Значит нам нужно найти количество способов разложить число n  на произведение двух множителей. Тогда ответом будет количество делителей у числа n  так как для любого делителя a  найдется целое неотрицательное b = n     a  . Найдем все делители n  с помошью кода.

def get_divs(number):
    divs = []
    for i in range(1, int(number**0.5) + 1):
        if number % i == 0:
            divs.append(i)
            if i != int(number**0.5):
                divs.append(number//i)
    return divs

print(len(get_divs(5555555555555)))

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