2 条题解

  • 0
    @ 2025-10-10 20:35:06
    #include <stdio.h>
    
    int main() {
        long long a, b, p;
        scanf("%lld %lld %lld", &a, &b, &p);
        
        if (a == 0) {
            printf("0\n");
            return 0;
        }
        
        long long result = 1;
        a = a % p; // 先对a取模,减少后续计算量
        while (b > 0) {
            if (b % 2 == 1) {
                result = (result * a) % p;
            }
            a = (a * a) % p;
            b = b / 2;
        }
        printf("%lld\n", result);
        return 0;
    }
    
    
    • 0
      @ 2025-10-10 20:11:12

      #include<stdio.h>

      long long ksm(long long a,long long x,long

      long p)

      {

      long long n = 1;

      while(x)

      {

      if(x % 2 == 1)

      {

      n = n * a % p;

      x--;

      }

      if(x % 2 == 0)

      {

      a = a * a % p;
      

      x = x / 2 ;

      }

      }

      return n;
      }
      

      int main()

      {

      long long a,x,p;

      scanf("%lld %lld %lld",&a,&x,&p);

      long long s = ksm(a,x,p);

      printf("%lld\n",s);

      return 0;

      }

      • 1

      信息

      ID
      1129
      时间
      1000ms
      内存
      256MiB
      难度
      8
      标签
      (无)
      递交数
      250
      已通过
      43
      上传者