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

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

매우 어려운 문제

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

요약
N이 10^18까지 커질 수 있고 M이 10^7 이하일 때 N!을 M으로 나눈 나머지를 구한다.
난이도

보통10점 중 6점

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

문제

제목과 다르게 이 문제는 아주 쉽다.

2 이상의 정수 NN, MM에 대하여, N!N!을 MM으로 나눈 나머지를 구하여라.

입력

첫 번째 줄에 두 정수 NN과 MM이 공백으로 구분되어 주어진다.

출력

첫 번째 줄에 문제의 답에 해당하는 정수를 출력한다.

제한

  • 2≤N≤10182 \leq N \leq 10^{18} (NN 제한에 주의하라)
  • 2≤M≤1072 \leq M \leq 10^7
  • NN, MM은 정수이다.

힌트

  • n!n!은 11 이상 nn 이하의 모든 정수의 곱을 의미하며 "nn 팩토리얼"이라고 읽는다. 즉, n!=n×(n−1)×(n−2)×⋯×2×1n!=n\times(n-1)\times(n-2)\times\cdots\times2\times1이다.
  • 이 문제의 일부 테스트 케이스는 답의 범위가 2312^{31}을 넘어갈 수 있으므로 long long 자료형을 쓰도록 하자.

예제1

  1. 예제 1

    입력
    5 7
    
    예상 출력
    1