题目要求:
输入正整数𝑥,𝑝(𝑥≤10^9 𝑝≤10^18)
要求输出x^𝑝 mod(10^9+7)
样例输入3 5
样例输出243
主要思路:
算法题中通常会要求对 10^9+7 取模,来避免整数溢出的问题。其中10^9+7是一个比较大的质数。通过typedef long LL;const LL num=1e9+7;和return result%num;来实现𝑚od(10^9 +7)。而x^p由一个循环来实现while(n–){result*=a;}
#include<iostream>
#include<stdio.h>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <map>
#include <ctime>
#include <cmath>
using namespace std;
typedef long LL;
const LL num=1e9+7;
LL power(LL a, LL n,LL result)
{
result=1;
while(n--)
{
result*=a;
}
return result%num;
}
int main()
{
LL x,p;
cout <<"输入两个正整数x、p,输出x的p次方"<< endl;
cin>>x>>p;
cout <<"x的p次方是:"<<power(x,p,num)<<endl;
system("pause");
return 0;
}