My issue
My code
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define vi vector<int>
#define pb push_back
#define mod 1000000007
#define ff first
#define ss second
#define pi pair<int,int>
#define pii std::vector<pi>
#define lcm(a,b) a*b / (__gcd(a,b))
#define mp unordered_map<int,int>
#define REP(i,a,b)
#define SQ(a) (a)*(a)
#define MP make_pair
int pow(int n, int m){
int ans = 1;
while(m){
if(m){
m%=mod;
n%=mod;
ans*=n;
ans%=mod;
m--;
}
else{
n = ((n%mod)*(n%mod))%mod;
n%=mod;
m/=2;
}
}
return (ans%mod);
}
signed main(){
int tc;
cin>>tc;
while(tc--){
int A,B,N;
cin>>A>>B>>N;
int d1 = pow(A,N);
int d2 = pow(B,N);
int d = ((d1%mod)+(d2%mod))%mod;
int p = (abs(A-B))%mod;
int ans = __gcd(d, p)%mod;
cout<<ans<<endl;
}
}
Problem Link: GCDMOD Problem - CodeChef