同餘定理(求餘數)

現在給你一個自然數n,它的位數小於等於一百萬,現在你要做的就是求出這個數除10003之後的餘數


輸入
第一行有一個整數m(1<=m<=8),表示有m組測試數據;
隨後m行每行有一個自然數n。


輸出
輸出n整除10003之後的餘數,每次輸出佔一行。


樣例輸入
3
4
5
465456541


樣例輸出
4
5

6948

代碼如下:

  1. /* 
  2. 同餘定理:(a+b)%c=((a%c)+(b%c))%c 
  3. m%n舉例: 
  4. 123 % n = ((1%n*10%n+2%n)%n*10%n+3%n)%n 
  5. (m+n)%c=(m%c+n%c)%c;

       (19+4)%3=(19%3+4%3)%3;

    (m*n)%c=((m%c)*(n%c))%c;

    m^n%c=(m%c)^n%c;

       3^11%8=(3^10 * 3^1)%8=((3^2)^5 * 3^1)%8=((8+1)^5 * 3^1)%8


  6. */  
  7. #include<iostream>  
  8. #include<string>  
  9. #include<string.h>  
  10. #include<cstdio>  
  11. #include<algorithm>  
  12. using namespace std;  
  13.   
  14. int main()  
  15. {  
  16.     //freopen("Input.txt", "r", stdin);  
  17.     int N, i, num, len;  
  18.     scanf("%d", &N);  
  19.     while(N--)  
  20.     {  
  21.         num = 0; 
  22.         char str[1000010];          
  23.         scanf("%s", str);
  24.         len = strlen(str);
  25.         for(i = 0; i != len; ++i)
  26.         {
  27.             num = (num * 10 + (int)(str[i] - '0')) % 10003;
  28.         } 
  29.         printf("%d\n", num);  
  30.     }  
  31.     return 0;  
  32. }  
發佈了39 篇原創文章 · 獲贊 9 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章