#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<queue> #include<vector> using namespace std; long long n,p,inv[3000001]; int main() { scanf("%lld%lld",&n,&p); inv[1]=1; for(long long i=2;i<=n;i++) inv[i]=(p-p/i)*inv[p%i]%p; }
#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<queue> #include<vector> using namespace std; int n,prime[100001],idx; bool notprime[100001]; int main() { scanf("%d",&n); for(int i=2;i<=n;i++) { if(notprime[i]==0) { prime[++idx]=i; } for(int j=1;j<=idx&&i*prime[j]<=n;j++) { notprime[i*prime[j]]=1; if(i%prime[j]==0) break; } } }
#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<queue> #include<vector> using namespace std; int n,prime[100001],idx,phi[100001]; bool notprime[100001]; int main() { scanf("%d",&n); for(int i=2;i<=n;i++) { if(notprime[i]==0) { prime[++idx]=i; phi[i]=i-1; } for(int j=1;j<=idx&&i*prime[j]<=n;j++) { notprime[i*prime[j]]=1; if(i%prime[j]==0) { phi[i*prime[j]]=phi[i]*prime[j]; break; } else phi[i*prime[j]]=phi[i]*(prime[j]-1); } } }
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<queue> #include<vector> using namespace std; int n,a[10001],idx; int main() { scanf("%d",&n); for(int i=2;i*i<=n;i++) { if(n%i==0) { a[++idx]=i; while(n%i==0) n/=i; } if(n!=1) a[++idx]=n; } return 0; }
原文:https://www.cnblogs.com/jiangminghong/p/9912158.html