아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

약수의 개수 세기

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

요약
각 질의에서 l, r, k가 주어질 때 l부터 r까지 d(i^k)의 합을 998244353으로 나눈 나머지를 구한다.
난이도

어려움10점 중 8점

유형
정수론, 수학, 동적 계획법, 완전 탐색
정답자
아직 제출이 없습니다

문제

수학에서 d(n)d(n)은 양의 정수 nn의 약수의 개수를 나타내는 함수이다.

예를 들어 11, 22, 33, 44, 66, 1212가 모두 1212의 약수이므로 d(12)=6d(12) = 6이다.

이 문제에서는 ll, rr, kk가 주어진다. 다음 값을 계산하시오.

(∑i=lrd(ik)) mod 998 244 353.\left( \sum_{i = l}^{r} d \left( i^k \right) \right) \bmod 998\,244\,353\text{.}

입력

첫째 줄에 테스트 케이스의 수 TT가 주어진다. (1≤T≤151 \leq T \leq 15)

각 테스트 케이스는 한 줄에 세 정수 ll, rr, kk로 주어진다. (1≤l≤r≤10121 \leq l \leq r \leq 10^{12}, r−l≤106r - l \leq 10^6, 1≤k≤1071 \leq k \leq 10^7)

출력

각 테스트 케이스마다 정수 하나를 한 줄에 출력한다. 그 정수는 해당 테스트 케이스의 답이다.

예제1

  1. 예제 1

    입력
    3
    1 5 1
    1 10 2
    1 100 3
    
    예상 출력
    10
    48
    2302