world_execute @ 2020-02-13 22:08:12
将此题第一个题解所述代码
#include <bits/stdc++.h>
using namespace std;
#define Lint long long int
#define MOD 9901
long long mod,to0,to1;
inline Lint Qow(const Lint Base,Lint Index,int Result=1) {
for (Lint t=Base; Index; t = (t*t)%MOD,Index>>=1)
if (Index&1) Result = (Result*t)%MOD;
return Result;
}
inline void calc(Lint &Ans) {
Ans = (Qow(to0,to1)-1)*Qow(to0-1,MOD-2)*Ans%MOD;
}
Lint a,b,tmp;
Lint Ans=1;
int main() {
scanf("%lld%lld",&a,&b);
for (Lint i=2; i*i<=a; ++i)
if (!(a%i)) {
for (tmp=0; !(a%i); ++tmp)
a/=i;
to1 = (tmp*b+1);
if (i%MOD==1) Ans=Ans*(tmp+1)%MOD; //QuQ就是这里
else to0=i%MOD,calc(Ans);
}
if (a!=1) {
to1=b+1;
if (a%MOD==1) Ans=Ans*(b+1)%MOD;
else to0=a%MOD,calc(Ans);
}
printf("%lld\n",Ans);
return 0;
}
中第29行的
Ans=Ans*(tmp+1)%MOD;
改成
Ans=Ans*(tmp*b+1)%MOD;
为何也能过呀QuQ
by world_execute @ 2020-02-13 22:10:42
P1593 因子和 QuQ
by world_execute @ 2020-02-13 22:16:02
有人吗QAQ
by world_execute @ 2020-02-13 22:24:13
。。。睡觉了
by RainFestival @ 2020-02-14 08:48:27
@world_execute %%%
by 阿里椰奶 @ 2020-06-24 14:28:17
9901 * 9901 = 980298011.显然在筛因子的时候不可能筛到大于9901的数,而a=1的时候不会执行次根本不会进入循环内。