完整程序:
#include<iostream>
#include<algorithm>
#include <stdio.h>
using namespace std;
//利用递推公式实现取余运算的算法
//计算a^p%k的值
//为了防止运算过程中的溢出,采用64位整数,在C++环境中是long long
int mod(long long a,long long p,long long k)
{
if(p==1)return a%k;
if(p%2)return mod(a%k,p-1,k)*a%k;//p是奇数
else return mod((a*a)%k,p/2,k);//p是偶数
}
int main()
{
//在主函数main()中数据的读取与调用
unsigned a,p,k;
while(scanf("%u%u%u",&a,&p,&k)!=EOF)
cout<<mod(a,p,k);
}