同餘的性質
這是非常常用的東西
(a+b)%n==(a%n+b%n)%n 同加性
(a*b)%n==((a%n)*(b%n))%n 同乘性
但是,同餘不滿足同除性!
這點在處理涉及到排列組合結果要求餘的時候千萬要小心!
千萬不要在做涉及除法運算的大結果式子的時候去邊算邊求餘!
(這種一般採用素數高精法處理,不是這裏的討論範圍了
貼一下代碼吧:
/* 2035 */ //同餘的性質 #include <stdio.h> int main() { int m,n,i; long s; while(scanf("%d %d",&m,&n),m||n) { s=1; for(i=1;i<=n;i++) { s=(s%1000)*(m%1000); } printf("%d\n",s%1000); } return 0; }