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;
}

原文地址:https://www.cnblogs.com/Locking-Shonn/p/12569194.html