Задача 646
Ограниченные делители

Пусть $n$ будет натуральным числом и $p_1^{\alpha_1}\cdot p_2^{\alpha_2}...p_k^{\alpha_k}$ будет его разложением на простые множители.
Определим функцию Лиувилля $\lambda(n)$ как $\lambda(n) = (-1)^{\sum\limits_{i=1}^{k}\alpha_i}$.
(т.е. $-1$, если сумма показателей степени $\alpha_i$ нечетна, и $1$, если сумма показателей степени четна).
Пусть $S(n,L,H)$ будет суммой $\lambda(d) \cdot d$ для всех делителей $d$ числа $n$, для которых $L \leq d \leq H$.

Известно, что:
$\bullet\, S(10! , 100, 1000) = 1457$
$\bullet\, S(15!, 10^3, 10^5) = -107974$
$\bullet\, S(30!,10^8, 10^{12}) = 9766732243224$.

Найдите $S(70!,10^{20}, 10^{60})$ и приведите в качестве ответа остаток от деления полученного результата на $1\,000\,000\,007$.

Оригинал
 
© Проект Эйлера | Translated problems from ProjectEuler.net