Run ID:91869

提交时间:2024-09-22 20:27:58

#include<stdio.h> using namespace std; /* 任何两个数,如果它们的最大公约数=1, 则它们可以组成一个最简真分数。最大公约数可以用辗转相除法 */ int gcd(int a, int b) { if (b==0) { return a; } else { return gcd(b, a%b); } } int main() { // 最简真分数 分子和分母不能再化简的分数 int n; while (scanf("%d", &n) != -1) { if (n==0) { continue; } int arr[n]; int count=0; for (int i=0; i<n; i++) { scanf("%d",&arr[i]); } // i,j的初始值和结束值要防止重复判断 比如2/5 和5/2组成的算是一个 for (int i=0; i<n-1; i++) { for (int j=i+1; j<n; j++) { if (gcd(arr[i],arr[j])==1) { count++; } } } printf("%d\n",count); } return 0; }