题解 | #最简真分数#
最简真分数
https://www.nowcoder.com/practice/1f1db273eeb745c6ac83e91ff14d2ec9
// 直接模拟 #include <algorithm> #include <iostream> #include <vector> using namespace std; bool isTrue(int x, int y){ int k = min(x,y); for(int i=2; i<=k; i++){ if(x%i==0 && y%i==0) return false; } return true; } int main() { int n; cin >> n; int sum = 0; vector<int> nums(n); for(int i=0; i<n; i++) cin >> nums[i]; sort(nums.begin(), nums.end()); for(int i=0; i<n-1; i++){ for(int j=i+1; j<n; j++){ if(isTrue(nums[i], nums[j])) sum++; } } cout << sum << endl; } // 64 位输出请用 printf("%lld")