(牛客第二场)G.判正误(快速幂)
链接
有七个整数a,b,c,d,e,f,g,并且猜想。请验证猜想是否成立。
利用快速幂,可以很方便求出,,
,
,取模后加上看它是否等于g。
为了防止数据中出现对mod取模和
对mod取模的结果相等,然而它们的值不相等的情况,可以多取几个质数的模,逐个来试,绕过所有数据,我选了一个1e9+7就过了。
#include <cstdio>
#include <algorithm>
#include <string>
#include <iostream>
const int maxn=1000000007;
using namespace std;
int s;
long long poww(int a,int n){ //快速幂
int res=1,ans;
while(n){
if(n&1) res=a*res%maxn;
a=a*a%maxn;
n>>=1;
}
if(a==0) return 0; //底数为零的情况
return res;
}
int main(){
ios::sync_with_stdio(false);
int T;
cin>>T;
long long a,b,c,d,e,f,g;
while(T--){
cin>>a>>b>>c>>d>>e>>f>>g;
if(poww(a,d)%maxn+poww(b,e)%maxn+poww(c,f)%maxn==g){
//不过的话可以多取几个模数
printf("Yes\n");
}
else{
printf("No\n");
}
}
return 0;
} 
京公网安备 11010502036488号