/*题目描述:
给出 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
using namespace std; //求两个数的最小公倍数 int judge(int a, int b) { if (a%b == 0) { return b; } else { return judge(b, a%b); } } int main() { int n; cin >> n; while (n != 0) { //条件是n不等于0; //申请动态数组 int *p; p = new int[n]; for (int x = 0; x < n; x++) { cin >> p[x]; } //判断 int count,count1=0; //做n-1次循环 for (int i = 0; i < n - 1; i++) { for (int k = i + 1; k < n ; k++) { //用每一个去除剩下的每一个 count=judge(p[i], p[k]); if (count == 1) { //如果p[i]与p[k]没有公倍数就返回1; count1++; //计数的,有多少个最简真分数 } } } cout << count1 << endl; delete[] p; //删除申请的动态数组 cin >> n;//再次输入 } return 0; }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200947.html原文链接:https://javaforall.net
