先上代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,p,f[3000010];
int main(){
cin>>n>>p;
f[1]=1;
for(int i=2;i<=n;i++) f[i]=(p-p/i)*f[(p%i)]%p;
for(int i=1;i<=n;i++) cout<<f[i]<<'\n';
return 0;
}
最后的输出部分,用printf("%d\n",f[i])会RE第六个点,改成printf("%lld\n",f[i])会RE第三个点,最后我干脆cout,结果RE了第四个点...
有没有大佬解释一下到底发生了什么...