好久没做题了2333,竟然还一次A了,神奇
大概就是等比数列然后把分母乘过去,然后直接BSGS就行了,就是要写快速乘恩。。。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline ll add(ll x,ll y,const ll ha){ x+=y; return x>=ha?x-ha:x;}
inline void ADD(ll &x,ll y,const ll ha){ x+=y; if(x>=ha) x-=ha;}
inline ll ksc(ll x,ll y,const ll ha){
ll an=0;
for(;y;y>>=1,ADD(x,x,ha)) if(y&1) ADD(an,x,ha);
return an;
}
inline ll ksm(ll x,ll y,const ll ha){
ll an=1;
for(;y;y>>=1,x=ksc(x,x,ha)) if(y&1) an=ksc(an,x,ha);
return an;
}
ll M,K,sz,now;
unordered_map<ll,ll> mmp;
inline ll solve(){
sz=sqrt(M+0.5)+1,now=1;
for(int i=0;i<sz;i++,now=ksc(now,10,M)) if(!mmp.count(now)) mmp[now]=i;
now=ksm(now,M-2,M);
for(int i=0;i<sz;i++,K=ksc(K,now,M)) if(mmp.count(K)) return i*sz+mmp[K];
return 2333;
}
int main(){
scanf("%lld%lld",&K,&M),K=(K*9ll+1)%M;
printf("%lld\n",solve());
return 0;
}