Product 1 Modulo N CodeForces - 1514C
生活随笔
收集整理的這篇文章主要介紹了
Product 1 Modulo N CodeForces - 1514C
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Product 1 Modulo N CodeForces - 1514C
題意:
在[1,n-1]中選x個數,使得乘積mod n =1,求x的最大值,并輸出所選的數
題解:
我們設S為所選x個數的乘積
S%n == 1說明gcd(S,n)==1,即所選的x個數均與n互質,如果不互質,不可能%n=1
因此只能選與n互質的數
設sum為所有與n互質的數的乘積,并對n取模
如果sum=1,說明這些數都可以選
如果sum!=1,此時sum一定與n互質(因為sum的因子都是與n互質的),那sum這個數也參與了乘積中,如果去掉這個數,%n就等于1了
代碼:
#include<bits/stdc++.h> #define int long long using namespace std; const int maxm=2e6+5; vector<int>ans; map<int,int>mp; int n; void solve(){cin>>n;int s=1;for(int i=1;i<=n-1;i++){if(__gcd(i,n)!=1){mp[i]=1;}else{s=s*i%n;}}if(s!=1)mp[s]=1;for(int i=1;i<=n-1;i++){if(!mp[i]){ans.push_back(i);}}cout<<ans.size()<<endl;for(int i=0;i<ans.size();i++){cout<<ans[i]<<" ";}cout<<endl; } signed main(){ios::sync_with_stdio(0);solve();return 0; }總結
以上是生活随笔為你收集整理的Product 1 Modulo N CodeForces - 1514C的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 史上最全的路由器选购攻略!一篇看懂,wi
- 下一篇: 路由器没密码应该怎么设置路由器没有密码怎