2019/3/21最简真分数
题目描述:
给出 n 个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。
输入描述:
有多组测试数据,每组测试数据有两行。
第一行为一个整数 n (n <= 600)。
在第二行中有 n 个以空格分隔的不同的整数(大于等于 1 且小于等于 10, 000)。
当 n = 0 时,程序结束,不需要处理这组数据。
输出描述:
每行输出最简真分数组合的个数
样例输入:
7
3 5 7 9 11 13 15
3
2 4 5
0
样例输出:
17
2
#include <iostream>
#include <algorithm>
using namespace std;
#define MAX 1005
int num[MAX];
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int n;
while(cin>>n)
{
if(!n)
break;
for(int i=0;i<n;i++)
cin>>num[i];
sort(num,num+n);
int count=0;
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(gcd(num[i],num[j])==1)
count++;
cout<<count<<endl;
}
return 0;
}