위수는 쿼리입니까?

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

요약
법 N에 대한 원소의 위수를 묻는 네 가지 쿼리를 처리한다. 주어진 위수를 갖는 원소의 개수와 합까지 구해야 하며 N은 4×10^18까지 주어진다.
난이도

어려움10점 중 8점

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

문제

22 이상의 자연수 NN과, 11 이상 N−1N-1 이하의 자연수 aa에 대하여 ae≡1(modN)a^e\equiv 1\pmod{N}을 만족시키는 가장 작은 11 이상의 정수 ee를 법 NN에 대한 aa의 위수(order)라고 하고, ord⁡_N(a)\operatorname{ord}\_N(a)로 표기합니다. 만약 그러한 수 ee가 존재하지 않는 경우 편의상 ord⁡_N(a)=0\operatorname{ord}\_N(a) =0으로 정의합니다.

자연수 NN이 주어졌을 때, 다음과 같은 쿼리를 처리해봅시다.

  • 1 aa: ord⁡_N(a)\operatorname{ord}\_N(a)를 출력합니다. (1≤a≤N−11\leq a\leq N-1)
  • 2 ee: ord⁡_N(a)=e\operatorname{ord}\_N(a) =e를 만족시키는 11 이상 N−1N-1 이하의 자연수 aa를 아무거나 하나 출력합니다. 만약 그러한 수가 존재하지 않으면 0을 출력합니다. (1≤e≤N−11\leq e\leq N-1)
  • 3 ee: ord⁡_N(a)=e\operatorname{ord}\_N(a) =e를 만족시키는 11 이상 N−1N-1 이하의 자연수 aa의 개수를 출력합니다. (1≤e≤N−11\leq e\leq N-1)
  • 4 ee: ord⁡_N(a)=e\operatorname{ord}\_N(a) =e를 만족시키는 11 이상 N−1N-1 이하의 자연수 aa의 합을 NN으로 나눈 나머지를 출력합니다. (1≤e≤N−11\leq e\leq N-1)

입력

첫째 줄에 자연수 NN이 주어집니다. (2≤N≤4×10182\leq N\leq 4\times 10^{18})

둘째 줄에 쿼리의 개수 QQ가 주어집니다. (1≤Q≤10,0001\leq Q\leq 10\\, 000)

다음 QQ개의 줄에는 쿼리가 한 줄에 하나씩 주어집니다.

출력

QQ개의 줄에 각 쿼리의 결과를 출력합니다.

예제1

  1. 예제 1

    입력
    12470
    6
    1 1111
    2 49
    3 1176
    2 12
    1 430
    3 84
    
    예상 출력
    42
    0
    0
    2187
    0
    2304