class="markdown_views prism-atom-one-light">
Description
Input
有且只有一个正整数m。
Output
以递增序依次输出模m的所有原根,每行输出一个原根。
如果不存在模m的原根,输出-1。
Sample Input
7
Sample Output
3
5
Data Constraint
50%的数据,m≤ 200。
100%的数据,m ≤ 10000。
Hint
样例解释:
思路
m很小,直接暴力即可
代码
#include
#include
#include
using namespace std;
int m,s;
bool b=0;
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);
if(m==1)
{
printf("1"); return 0;
}
for(int i=1; i<=m; i++)
{
if(gcd(i,m)==1) s++;
}
for(int i=1; i<=m; i++)
{
int t=1;
for(int j=1; j<=s; j++)
{
t=t*i%m;
if(t==1)
{
if(j==s) printf("%d
",i),b=1;
break;
}
}
}
if(!b) printf("-1");
}