题解 | #最简真分数#
最简真分数
https://www.nowcoder.com/practice/1f1db273eeb745c6ac83e91ff14d2ec9
将判断条件置为:求最大公约数。
如果最大公约数是1,说明是真分数,否则是假分数。
#include <iostream> using namespace std; int gcd(int a, int b){ int r; do{ r = a % b; a = b; b = r; }while(b); return a; } int main() { int n; while (cin >> n && n != 0) { // 注意 while 处理多个 case int a[n], count = 0; for (int i = 0; i < n; i++){ cin >> a[i]; } for (int i = 0; i < n; i++){ for (int j = i+1 ; j < n ;j++){ if (gcd(a[i],a[j]) == 1){ count++; } // cout<<a[i]<<" "<<a[j]<<" "<<count<<endl; } } cout << count << endl; } } // 64 位输出请用 printf("%lld")