99클럽 코테 스터디 2일차 TIL + 매우 어려운 문제

Saang Bum Kim·2024년 4월 22일
0

99클럽

목록 보기
3/59
  1. 문제
    링크텍스트

  2. 난관

  • 문제 자체는 쉽다.
    N! % M
  • 하지만 계속 '시간 초과'에 걸린다.
  • 다음 조건은 쉽다.
    if N >= M, answer = 0
  • 하지만 M이 큰 경우에 대한 해는,
    factorial mod 로 web search를 해야만 했다.
  • 아주 빠른 해도 찾았으나 잘 이해가 안가서 포기하고
    단순하게 다음의 관계를 사용했다. (a b) % M = ((a % M) (b % M)) % M
  1. 결과
N, M = map(int, input().split())
if N < 2 or N > 1e18 or M < 1 or M > 1e7:
    exit()
if N < M:
    y = 1
    for i in range(1, N+1):
        y = (y*i) % M
else:
    y = 0
print(y)

profile
old engineer

0개의 댓글