No Rules Rules

이항 계수 3 (feat. 백준, 11401번) 본문

생활/코테

이항 계수 3 (feat. 백준, 11401번)

개발하는 완두콩 2022. 8. 15. 22:01
728x90
반응형

이항 계수 3
https://www.acmicpc.net/problem/11401

 

11401번: 이항 계수 3

자연수 \(N\)과 정수 \(K\)가 주어졌을 때 이항 계수 \(\binom{N}{K}\)를 1,000,000,007로 나눈 나머지를 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

반응형

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
using namespace std;
long long factorial(long long N) {
	long long f = 1;
	while (N)
		f = f * (N--) % 1000000007;
	return f;
}
long long my_pow(long long base, long long expo) {
	if (expo == 1)
		return base % 1000000007;
	long long tmp = my_pow(base, expo / 2);
	if (expo & 1)
		return (tmp * tmp % 1000000007) * base % 1000000007;
	return tmp * tmp % 1000000007;
}
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
	register int N, K;
	cin >> N >> K;
	register long long t1 = factorial(N);
	register long long t2 = factorial(K) * factorial(N - K) % 1000000007;
	cout << t1 * my_pow(t2, 1000000007 - 2) % 1000000007;
	return 0;
}
// *&)*@*

페르마의 소정리를 이용하여 아래의 식에 대입합니다.

페르마의 소정리는 아래의 링크를 참고하세요.

 

페르마의 소정리 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 수론에서 페르마의 소정리(Fermat小定理, 영어: Fermat’s little theorem)는 어떤 수가 소수일 간단한 필요 조건에 대한 정리이다. 추상적으로, 소수 크기의 유한체 위

ko.wikipedia.org

 

728x90
반응형

'생활 > 코테' 카테고리의 다른 글

행렬 제곱 (feat. 백준, 10830번)  (0) 2022.08.15
행렬 곱셈 (feat. 백준, 2740번)  (0) 2022.08.15
곱셈 (feat. 백준, 1629번)  (0) 2022.08.15
종이의 개수 (feat. 백준, 1780번)  (0) 2022.08.14
쿼드트리 (feat. 백준, 1992번)  (0) 2022.08.14
Comments