민혁이는 집합 S={1,2,…,N}에서 자기 자신으로 가는 함수 f:S→S를 하나 만들었다. f를 k번 연속으로 적용하는 것을 fk라고 쓰면, 민혁이가 만든 함수는 다음 성질을 만족한다.
- fA1(1)=1
- fA2(2)=2
- …
- fAN(N)=N
민혁이는 이 성질을 만족하는 서로 다른 함수가 몇 개인지 궁금해졌다. A1,A2,…,AN이 주어질 때 그 개수를 구하는 프로그램을 작성하여라. 두 함수 g와 h에 대해 g(x)=h(x)인 x가 하나라도 있으면 g와 h는 서로 다른 함수이다.