ps:problems:boj:14854
이항 계수 6
ps | |
---|---|
링크 | acmicpc.net/… |
출처 | BOJ |
문제 번호 | 14854 |
문제명 | 이항 계수 6 |
레벨 | 다이아몬드 5 |
분류 |
수학, 정수론 |
시간복잡도 | O(qlogn) |
인풋사이즈 | q<=10^5, n<=10^9 |
사용한 언어 | Python |
제출기록 | 34040KB / 3824ms |
최고기록 | 2872ms |
해결날짜 | 2021/02/03 |
풀이
- 모듈러스 142857은 제곱인수를 포함하는 합성수이다. 이항 계수 - 모듈러스가 임의의 합성수일 때의 방법을 사용해서 푼다.
- 142857 = 3^3*11*13*37 에서 법 3^3에 대한 나머지는 n! = n!_p * c(p) 로 고쳐서 풀어야 하지만, 법 11,13,37에 대한 나머지는 n! = n!_p * c(p) 로 풀지 않고 뤼카의 정리로 풀 수도 있다. 둘다 같은 방법으로 처리하면 코드짜기는 쉽지만, 속도는 뤼카의 정리를 썼을때가 300ms 정도 더 빨랐다.
코드
(다이아몬드 이상은 코드 첨부 생략)
ps/problems/boj/14854.txt · 마지막으로 수정됨: 2021/02/16 14:14 저자 teferi
토론