AT_ttpc2019_i/I hate P
咱现学了快速乘之后试着写了下,超时了,求改
#include <bits/stdc++.h>
#include <string>
using namespace std;
long long ksc(long long x, long long y,long long M) //x*y % M
{
long long ans = 0;
while (x)
{
if (x & 1)
{
ans = (ans + y) % M;
}
x >>= 1;
y = (y << 1) % M;
}
return ans;
}
long long f(long long I1,long long P1)
{
while(I1 % P1 == 0)
{
I1 = I1 / P1;
}
return I1;
}
int main()
{
long long Q,P,R,L,tot=1;
cin >> P >> Q >> L >> R;
for(long long i = L;i <= R;i++)
{
tot = ksc(tot,f(i,P),Q);
}
cout << tot;
}