만드는 중입니다

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

약수의 개수

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

요약
a, b, c가 2000 이하일 때 모든 i<=a, j<=b, k<=c에 대해 i*j*k의 약수 개수를 더한 값을 2^30으로 나눈 나머지를 구한다.
난이도

어려움10점 중 8점

유형
정수론, 수학, 조합론, 동적 계획법
정답자
아직 제출이 없습니다

문제

양의 정수 nn의 약수의 개수를 d(n)d(n)이라고 하자.

세 정수 aa, bb, cc가 주어질 때, 다음 식의 값을 구하는 프로그램을 작성하시오.

∑i=1a∑j=1b∑k=1cd(i×j×k)\sum_{i=1}^{a}\sum_{j=1}^{b}\sum_{k=1}^{c} d(i \times j \times k)

입력

첫째 줄에 aa, bb, cc가 공백으로 구분되어 주어진다. (1≤a,b,c≤20001 \le a, b, c \le 2000)

출력

첫째 줄에 위 식의 값을 2302^{30}으로 나눈 나머지를 출력한다. 2302^{30}은 1073741824이다.

예제3

  1. 예제 1

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

    입력
    4 4 4
    
    예상 출력
    328
    
  3. 예제 3

    입력
    10 10 10
    
    예상 출력
    11536