2 条题解

  • 0
    @ 2025-1-1 12:34:11
    #include <iostream>
    using namespace std;
    
    // 快速幂取模函数,计算 (base^exponent) % mod
    int fastPower(int base, int exponent, int mod) {
        int result = 1;
        base %= mod;
        while (exponent > 0) {
            if (exponent & 1) {
                result = (result * base) % mod;
            }
            base = (base * base) % mod;
            exponent >>= 1;
        }
        return result;
    }
    
    int main() {
        int p, b, n;
        cin >> p >> b >> n;
        for (int l = 0; l < p; l++) {
            if (fastPower(b, l, p) == n) {
                cout << l << endl;
                return 0;
            }
        }
        cout << -1 << endl;
        return 0;
    }
    
    • -3
      @ 2024-12-29 17:23:23
      #include <iostream>
      using namespace std;
      
      // 计算最大公约数,用于判断两个数是否互质
      long long gcd(long long a, long long b) {
          return b == 0? a : gcd(b, a % b);
      }
      
      // 快速幂取模函数,用于高效计算 (a^n) % m
      long long powMod(long long a, long long n, long long m) {
          long long res = 1;
          a %= m;
          while (n > 0) {
              if (n & 1) {
                  // 如果n的二进制最低位为1,累乘当前的a
                  res = res * a % m;
              }
              a = a * a % m;
              n >>= 1;  // 右移一位,相当于n /= 2
          }
          return res;
      }
      
      int main() {
          long long p, b, n;
          cin >> p >> b >> n;
          // 判断b与p是否互质,如果不互质直接输出 -1
          if (gcd(b, p)!= 1) {
              cout << -1 << endl;
              return 0;
          }
      
          bool found = false;
          for (long long l = 1; l < p; l++) {
              if (powMod(b, l, p) == n) {
                  cout << l << endl;
                  found = true;
                  break;
              }
          }
          if (!found) {
              cout << -1 << endl;
          }
          return 0;
      }
      
    • 1

    信息

    ID
    61
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    213
    已通过
    7
    上传者