Modulo(mod)는 정수에서 매우 흔히 쓰이는 연산이다. 두 정수 n과 d>0에 대해 r≡(nmodd)는 0≤r<d이고 n=q×d+r인 정수 q가 존재하는 r로 정의된다. 예를 들어 (200mod5)≡0은 200을 5로 나눈 나머지가 0임을 뜻한다.
다음은 DivModulo(dmod)라는 새로운 연산의 정의이다. 두 정수 n과 d>0에 대해 r≡(ndmodd)는 r≡(mmodd)이고 n=m×dh이며 d가 m의 약수가 아닌 정수 m과 h가 존재하는 r로 정의된다. 예를 들어 (200dmod5)≡3이다. 200=8×52이고 (8mod5)≡3이기 때문이다.
팩토리얼과 조합 함수를 생각하자. 정수 M≥0에 대해 팩토리얼 M!은 M!=M×(M−1)×(M−2)×⋯×3×2×1로 정의되고 0!=1로 정의된다. 0≤N≤M인 정수 M과 N에 대해 조합 함수 C(M,N)은 C(M,N)=M!/(N!×(M−N)!)로 정의된다. 세 정수 M, N, D가 D>0을 만족하며 주어질 때 C(M,N)dmodD를 계산하시오. 예를 들어 (C(9,2)dmod3)≡(36dmod3)≡(4×32dmod3)≡(4mod3)≡1이다.