2 条题解
-
0
#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
#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
- 上传者