牛客网——最简真分数
题目描述
给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。
输入描述:
每组包含n(n<=600)和n个不同的整数,整数大于1且小于等于1000。
输出描述:
每行输出最简真分数组合的个数。
链接:https://www.nowcoder.com/questionTerminal/1f1db273eeb745c6ac83e91ff14d2ec9 来源:牛客网 #include <stdio.h> #define N 600 int 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; }