Description
Input
有且只有一个正整数m。
Output
以递增序依次输出模m的所有原根,每行输出一个原根。
如果不存在模m的原根,输出-1。
如果不存在模m的原根,输出-1。
Sample Input
7
Sample Output
3
5
Data Constraint
50%的数据,m≤ 200。
100%的数据,m ≤ 10000。
100%的数据,m ≤ 10000。
Hint
样例解释:
分析
按照题意模拟即可
#include <iostream> #include <cstdio> using namespace std; int m,phi; bool has; int GCD(int a,int b) { return !b?a:GCD(b,a%b); } int main() { freopen("math.in","r",stdin); freopen("math.out","w",stdout); scanf("%d",&m); for (int i=1;i<=m;i++) phi+=GCD(i,m)==1; for (int i=1;i<=m;i++) if (GCD(i,m==1)) { int pow=1; for (int j=1;j<=phi;j++) { pow=pow*i%m; if (pow==1) { if (j==phi) { printf("%d\n",i); has=1; } break; } } } if (m==1) { printf("1"); return 0; } if (!has) printf("-1"); }