• 11.04T2 暴力模拟


    3814 -- 【模拟试题】原根

    Description

    Input

      输入仅一个正整数m。

    Output

      以递增序依次输出模m的所有原根,每行输出一个原根。
      如果不存在模m的原根,输出-1。

    Sample Input

    7

    Sample Output

    3 5

    Hint

     
     
     
    暴力模拟,怎么暴力怎么来,详见代码
    code:
     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 int gcd(int a,int b) {
     5     if(a<b)swap(a,b);
     6     while(a=a%b)swap(a,b);
     7     return b;
     8 }
     9 int phi;
    10 int main() {
    11     int m;
    12     cin>>m;
    13     for(int i=1; i<=m; i++) {
    14         phi+=gcd(i,m)==1;
    15     }
    16     int f=0;
    17     if(m==1){
    18         cout<<1;
    19         return 0;
    20     }
    21     for(int i=1; i<=m; i++) {
    22         int ans=1;
    23         int flag=0;
    24         if(gcd(m,i)!=1)continue;
    25         for(int d=1;;d++) {
    26             (ans*=i)%=m;
    27             if(ans==1) {
    28                 if(d==phi)
    29                     flag=1;
    30                 break;
    31             }
    32         }
    33         if(flag) {
    34             cout<<i<<"
    ";
    35             f=1;
    36         }
    37     }
    38     if(f==0)cout<<-1;
    39     return 0;
    40 }

    over

  • 相关阅读:
    域运算符::
    类和结构体类型的异同
    4 链表组件(817)
    2 旋转链表(61)
    1、重排链表(力扣143)
    子字符串排序的关键代码
    C语言四舍五入
    约分
    python学习第八天
    python学习第七天
  • 原文地址:https://www.cnblogs.com/saionjisekai/p/9905236.html
Copyright © 2020-2023  润新知