큰 합
시간 제한2초메모리 제한1024 MB
1 이상 10^12 이하의 정수 n이 주어질 때, n의 각 약수 d마다 i를 1부터 n까지 더한 gcd(d, i)의 총합을 구합니다.
문제
코랴는 수학 시간에 약수와 배수, 그리고 최대공약수를 배웠다. 두 자연수 a와 b의 최대공약수는 a와 b를 모두 나누는 가장 큰 자연수 g이며, 로 적는다.
선생님은 코랴에게 어떤 수 k에 대해 를 구하는 숙제를 냈다. 코랴는 이를 일반화했다. n의 약수 d마다 내부 합의 상한을 d가 아니라 n으로 잡아, 의 값을 구한다. 여기서 은 d가 n의 약수라는 뜻이다.
n이 커지면 이 식을 그대로 계산하는 데 시간이 오래 걸린다. 여러 n에 대해 이 식의 값을 구하는 프로그램을 작성하라.
입력
입력 파일에는 자연수 n이 하나 주어진다 ().
출력
주어진 n에 대한 식의 값을 한 개의 수로 출력한다.