题目描述
给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。
输入描述:
每组包含n(n<=600)和n个不同的整数,整数大于1且小于等于1000。
输出描述:
每行输出最简真分数组合的个数。
链接:https://www.nowcoder.com/questionTerminal/1f1db273eeb745c6ac83e91ff14d2ec9 来源:牛客网#include <stdio.h> #define N 600int gcd(int a, int b)//欧几里得算法求最大公约数 {if(b==0) return a;else return gcd(b, a%b); }int main() {int buf[N];int count, n;while(scanf("%d", &n)!=EOF){for(int i=0; i<n; i++){scanf("%d", &buf[i]);}count=0;//总计0个真分数for(int i=0; i<n; i++)//分母 {for(int j=0; j<n; j++)//分子 {if(i==j) continue;else if(buf[i]>buf[j] && gcd(buf[i], buf[j])==1){count++;}}}printf("%d\n", count);}return 0; }