请求加强数据
查看原帖
请求加强数据
89875
EMT__Mashiro楼主2019/4/4 16:04

我们知道在计算n! mod pkn!\ mod\ p^k的时候有这样一个式子,i=1n[(i,p)=1]i%pk\prod\limits_{i=1}^n[(i,p)=1]i\%p^k,这个东西显然是一个以pkp^k为循环节的东西,所以计算的代码如下

for(i=1;i<pk;++i) if(i%p) ans=ans*i%pk;
ans=power(ans,n/pk,pk);
for(i=1;i<=n%pk;++i) if(i%p) ans=ans*i%pk;

但是如果把它修改成以pp为循环节去计算即

for(i=1;i<p;++i) if(i%p) ans=ans*i%pk;
ans=power(ans,n/p,pk);
for(i=1;i<=n%p;++i) if(i%p) ans=ans*i%pk;

依旧能够通过这道题目,但是很显然这是错误的计算方法,似乎随便造一组数据就卡掉了。
请求加强数据@memset0

2019/4/4 16:04
加载中...