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;
    }
    
    

    信息

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