목차

이항 계수 5

ps
링크acmicpc.net/…
출처BOJ
문제 번호11439
문제명이항 계수 5
레벨플래티넘 4
분류

수학, 정수론

시간복잡도O(nloglogn)
인풋사이즈n <= 4*10^6
사용한 언어Python
제출기록66524KB / 560ms
최고기록560ms
해결날짜2021/01/24

풀이

코드

"""Solution code for "BOJ 11439. 이항 계수 5".

- Problem link: https://www.acmicpc.net/problem/11439
- Solution link: http://www.teferi.net/ps/problems/boj/11439
"""

from teflib import numtheory


def main():
    N, K, M = [int(x) for x in input().split()]
    if K > N - K:
        K = N - K
    ans = 1
    for p in numtheory.prime_list(N):
        prime_pow = p
        e = 0
        while prime_pow <= N:
            e += (N // prime_pow) - (K // prime_pow) - ((N - K) // prime_pow)
            prime_pow *= p
        ans = ans * pow(p, e, M) % M
    print(ans)


if __name__ == '__main__':
    main()