题目描述
给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。
输入描述:
每组包含n(n<=600)和n个不同的整数,整数大于1且小于等于1000。
输出描述:
每行输出最简真分数组合的个数。
示例1
输出
复制17
#include<iostream> #include<algorithm> using namespace std; //求分子分母的最大公约数 int gcb(int a,int b) { if(b==0) return a; else return gcb(b,a%b); } int main() { int n; int a[601]; int x = 0; int count; while(cin>>n) { for(int i=0;i<n;i++) { cin>>a[i]; } sort(a,a+n); count = 0; for(int i=0;i<n;i++) { for(int j=i+1;j<n;j++) { x = gcb(a[i],a[j]); if(x==1) count++; } } printf("%d\n",count); } return 0; } /*运行时间:12ms 占用内存:376k*/