元のルート(テンプレート)を求める

1155 ワード

数論は頭が禿げているので、原理は他の人のブログを見てみましょう:数論の原根#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; const int inf=0x3f3f3f3f; const double pi= acos(-1.0); const double esp=1e-7; const int Maxn=1e6+10; int prime[Maxn];// int sprime[Maxn];// P-1 bitsetpri;// 0 1, int k;// Maxn int cnt;// void is_prime() { pri.set();// 1 for(int i=2; i1) sprime[cnt++]=n;// } LL modexp(LL a,LL b,int mod)// { LL res=1; while(b>0) { a=a%mod; if(b&1) res=res*a%mod; b=b>>1; a=a*a%mod; } return res; } int main(){ int p; is_prime(); while(~scanf("%d",&p)) { Divide(p-1); for(int g=2; g