anhkiet2507

CHIA DU TICH HAI SO

Oct 7th, 2021 (edited)
1,813
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <string>
  4. #include <vector>
  5. #include <algorithm>
  6. using namespace std;
  7. long long ChiaDuTichHaiSo(long long a,long long b,long long mod){
  8.     long long res = 0; // biến kết quả ban đầu = 0
  9.     a %= mod; // Nếu a lớn hơn hoặc bằng mod thì chia dư a cho mod để được một số nhỏ hơn mod
  10.     while (b!=0){
  11.         if (b % 2 == 1){ // Nếu b lẻ
  12.             res = (res + a) % mod; // Cộng a vào kết quả, sau đó chia cho mod
  13.         }
  14.         // Nếu b chẵn
  15.         a = (2 * a) % mod; // Chia dư 2*a cho mod để đảm bảo không bị tràn số
  16.         b = b/2; // Chia b cho 2
  17.     }
  18.     return res;
  19. }
  20.  
  21. int main(){
  22.     int t;
  23.     cin >> t;
  24.     while (t--) {
  25.         long long a, b, m;
  26.         cin >> a >> b >> m;
  27.         cout << ChiaDuTichHaiSo(a, b, m) << endl;
  28.     }
  29.     return 0;
  30. }
  31.  
  32.  
Add Comment
Please, Sign In to add comment