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

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

항등 함수

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

요약
정수 N이 주어지고 f(a)=a^N mod N일 때 1<=a<N의 모든 a에 대해 F_k(a)=a가 되는 최소 양의 정수 k를 찾습니다. 없으면 -1을 출력합니다.
난이도

어려움10점 중 8점

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

문제

정수 NN이 주어진다. NN은 11보다 크다.

다음 함수를 생각하자.

  • f(a)=aN mod Nf(a) = a^N \bmod N
  • F1(a)=f(a)F_1(a) = f(a)
  • Fk+1(a)=Fk(f(a))F_{k+1}(a) = F_k(f(a)) (k=1,2,3,…k = 1,2,3,\ldots)

mod\mathrm{mod}는 정수의 나머지 연산을 나타낸다. 음이 아닌 정수 xx와 양의 정수 yy에 대해, x mod yx \bmod y는 xx를 yy로 나눈 나머지이다.

NN보다 작은 모든 양의 정수 aa에 대해 Fk(a)=aF_k(a) = a가 성립하는 최소 양의 정수 kk를 출력하라. 그러한 kk가 존재하지 않으면 −1-1을 출력하라.

입력

입력은 한 줄이며, 정수 NN (2≤N≤1092 \le N \le 10^9)이 주어진다. NN의 의미는 문제 본문에 설명되어 있다.

출력

NN보다 작은 모든 양의 정수 aa에 대해 Fk(a)=aF_k(a) = a가 성립하는 최소 양의 정수 kk를 출력하라. 그러한 kk가 존재하지 않으면 −1-1을 출력하라.

예제3

  1. 예제 1

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

    입력
    4
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    15
    
    예상 출력
    2