题解 | #最简真分数#
最简真分数
https://www.nowcoder.com/practice/1f1db273eeb745c6ac83e91ff14d2ec9
#include <iostream> #include<bits/stdc++.h> using namespace std; int GCD(int a , int b) { if(b == 0) { return a ; } return GCD(b , a %b); } int main() { int n ; cin>>n ; vector<int> a ; int tmp ; while(cin>>tmp) { a.push_back(tmp) ; } sort(a.begin() , a.end()) ; int num = 0 ; for(int i = 1 ; i < a.size() ; ++ i) // 先排序之后对 遍历所有的数,当前面的数小于 后面的数, 并且两个的最大公约数为1的时候就是最简真分数。 for(int j = 0 ; j <i ; ++ j) { if(GCD(a[i] , a[j]) == 1 ) { num++ ; } } cout<<num ; } // 64 位输出请用 printf("%lld")