Codeforces Round #716 (Div. 2) 1514C
作者:互联网
C. Product 1 Modulo N
思路
- 不能选与 n n n 不互质的数,因为如果不互质就会无法 m o d mod mod n n n 为 1 1 1
- 把不互质的数累乘 m o d mod mod n n n,得出的结果一定在 1 − n 1 - n 1−n 之间
- 那么只要把累乘结果从 a s n asn asn 中去掉就可以了,累乘结果就是 1 1 1
AC
#include <bits/stdc++.h>
using namespace std;
#define PB push_back
typedef long long LL;
int gcd(int n, int t) {
if (t == 0) return n;
else return gcd(t, n % t);
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int n;
cin >> n;
VI ans;
LL res = 1;
for (int i = 1; i <= n - 1; i ++ ) {
if (gcd(n, i) == 1) {
res *= i;
res %= n;
ans.PB(i);
}
}
if (res != 1) {
for (auto i = ans.begin(); i != ans.end(); i ++ ) {
if (*i == res) {
ans.erase(i);
break;
}
}
}
cout << ans.size() << endl;
for (auto t : ans) cout << t << ' ';
return 0;
}
标签:gcd,int,716,LL,long,1514C,Div,互质,mod 来源: https://blog.csdn.net/m0_53091571/article/details/118903514