CSES - Exponentiation | Lũy thừa

Xem PDF



Thời gian:
Pypy 3 3.0s
Python 3 3.0s

Tác giả:
Dạng bài
Điểm: 1300 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Hãy tính toán các giá trị \(a^b \mod 10^9\) \(+ 7\) một cách hiệu quả.

Lưu ý: Trong bài này, ta giả định rằng \(0^0 = 1\).

Input

  • Dòng đầu tiên chứa một số nguyên \(n:\) số lượng câu hỏi.
  • Sau đó là \(n\) dòng, mỗi dòng chứa hai số \(a,b\).

Output

  • In ra các giá trị \(a^b \mod 10^9\) \(+\) \(7\).

Constraints

  • \(1 \leq n \leq 2 \cdot 10^5\)
  • \(0 \leq a, b \leq 10^9\)

Example

Sample input

3
3 4
2 8 
123 123

Sample output

81
256
921450052


Bình luận

  • MinhBùi_288 9:30 a.m. 31 Tháng 3, 2025 chỉnh sửa 4
    //ʕ•ᴥ•ʔ HARU ➻❥cutis1tgミ★
    /* 
        {\_/}               10 TIN - IOG - VNG           
        (^~^)            *************************
        />AC>                  I'm Minh Bui 
    */
    #include <bits/stdc++.h>
    
    using namespace std;
    
    #define Haru int main()
    #define ll long long
    
    const int maxn = 1e7 + 1;
    const int mod = 1e9 + 7;
    
    ll powx(ll a, ll b) {
        ll kq = 1;
        while(b > 0) {
            if(b % 2 == 1) kq = (kq * a) % mod;
            a = (a * a) % mod;
            b /= 2;
        }
        return kq;
    }
    Haru {
        int t;
        cin >> t;
        while(t--) {
            int a,b;
            cin >> a >> b;
            cout << powx(a,b) << endl;
        }
        return 0; 
    }
    
    • TheBloxdPlayer 8:57 a.m. 22 Tháng 3, 2025

      quocbao2710 xài chatgpt, mong admin xét xử
      Bằng chứng ( đã AC từ trước nên xem code được )

      • TheBloxdPlayer 9:21 a.m. 8 Tháng 2, 2025

        hoangkda copy code chatgpt kìa!!

        • lehoangvy 6:25 p.m. 28 Tháng 10, 2024

          MOD = 10**9

          def power_mod(a, b, mod):
          if a == 0 and b == 0:
          return 1
          result = 1
          a = a % mod
          while b > 0:
          if b % 2 == 1:
          result = (result * a) % mod
          a = (a * a) % mod
          b //= 2
          return result

          n = int(input().strip())
          queries = [tuple(map(int, input().strip().split())) for _ in range(n)]

          results = []
          for a, b in queries:
          value = (power_mod(a, b, MOD) + 7) % MOD
          results.append(value)

          print("\n".join(map(str, results)))
          sai cho nao vay

          • KhoiNguyen_NTT 9:29 p.m. 13 Tháng 6, 2024 chỉnh sửa 5

            code tham khảo

            #include <bits/stdc++.h>
            using namespace std;
            const int M=1e9+7;
            #define ll long long
            ll bp(ll a, ll b);
            int main()
                {                    
                    ll t,a,b; cin>>t;
                    while (t--)
                        cin>>a>>b,
                        cout<<bp(a,b)<<"\n";
                }
            ll bp(ll a, ll b)
                {         
                    int ans=1;
                    while (b)
                        {
                            if (b&1) 
                                ans=(ans*a)%M;
                            a=(a*a)%M; b/=2;
                        }
                    return ans;
                }
            
            • TK22NguyenPhat 8:05 a.m. 24 Tháng 5, 2024

              Nè :
              Python
              def modular_exponentiation(a, b, mod):
              result = 1
              a %= mod
              while b > 0:
              if b % 2 == 1:
              result = (result * a) % mod
              b //= 2
              a = (a * a) % mod
              return result
              n = int(input())
              for _ in range(n):
              a, b = map(int, input().split())
              print(modular_exponentiation(a, b, 10**9 + 7))

              • thuannguyen1972dn 6:03 p.m. 2 Tháng 5, 2024

                PYTHON Mãi đỉnh:
                MOD = 10**9 + 7

                def powmod(a, b):
                kq = 1
                while b > 0:
                if b % 2 == 1:
                kq = (kq * a) % MOD
                a = (a * a) % MOD
                b //= 2
                return kq

                def main():
                import sys
                input = sys.stdin.read
                data = input().split()
                n = int(data[0])
                index = 1
                results = []
                for _ in range(n):
                a = int(data[index])
                b = int(data[index + 1])
                result = powmod(a, b)
                results.append(result)
                index += 2

                for res in results:
                    print(res)
                

                if name == "main":
                main()

                • penistone 2:26 p.m. 25 Tháng 12, 2023

                  Gợi ý: dùng lũy thừa nhị phân + mod
                  Code C++: https://ideone.com/rNpdsf

                  • iq2000laday 2:55 p.m. 12 Tháng 10, 2023

                    Python AC kiểu chi rứa mọi người 🙁

                    • N7hoatt 8:47 a.m. 30 Tháng 8, 2023

                      Hãy tính toán các giá trị \(a^b \space\) \(mod\) \(\space 10^9 +7\) một cách hiệu quả.

                      Lưu ý: trong bài này, ta giả định rằng \(0^0 = 1\).

                      Input

                      • Dòng đầu tiên gồm số nguyên \(n\): số lượng các tính toán.
                      • \(n\) dòng tiếp theo, mỗi dòng gồm hai số nguyên \(a\)\(b\).

                      Output

                      • In giá trị của mỗi \(a^b \space\) \(mod\) \(\space 10^9 +7\).

                      Constraints

                      • \(1 \leq n \leq 2 \times 10^5\).
                      • \(0 \leq a, b \leq 10^9\).

                      Example

                      Test

                      Input
                      3
                      3 4
                      2 8
                      123 123
                      Output
                      81
                      256
                      921450052
                      Note
                      • 1 bình luận nữa