만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

큰 합

시간 제한2초메모리 제한1024 MB

요약
1 이상 10^12 이하의 정수 n이 주어질 때, n의 각 약수 d마다 i를 1부터 n까지 더한 gcd(d, i)의 총합을 구합니다.
난이도

보통10점 중 6점

유형
수학, 정수론
정답자
아직 제출이 없습니다

문제

코랴는 수학 시간에 약수와 배수, 그리고 최대공약수를 배웠다. 두 자연수 a와 b의 최대공약수는 a와 b를 모두 나누는 가장 큰 자연수 g이며, g=gcd⁡(a,b)g = \gcd(a, b)로 적는다.

선생님은 코랴에게 어떤 수 k에 대해 ∑i=1kgcd⁡(k,i)\sum_{i=1}^{k}\gcd(k, i)를 구하는 숙제를 냈다. 코랴는 이를 일반화했다. n의 약수 d마다 내부 합의 상한을 d가 아니라 n으로 잡아, ∑d∣n∑i=1ngcd⁡(d,i)\sum_{d|n}\sum_{i=1}^{n}\gcd(d, i)의 값을 구한다. 여기서 d∣nd|n은 d가 n의 약수라는 뜻이다.

n이 커지면 이 식을 그대로 계산하는 데 시간이 오래 걸린다. 여러 n에 대해 이 식의 값을 구하는 프로그램을 작성하라.

입력

입력 파일에는 자연수 n이 하나 주어진다 (1≤n≤10121 \le n \le 10^{12}).

출력

주어진 n에 대한 식의 값을 한 개의 수로 출력한다.

예제2

  1. 예제 1

    입력
    1
    
    예상 출력
    1
    
  2. 예제 2

    입력
    4
    
    예상 출력
    18