题目描述

给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。

输入描述:

每组包含n(n<=600)和n个不同的整数,整数大于1且小于等于1000。

输出描述:

每行输出最简真分数组合的个数。
示例1

输入

复制
7
3 5 7 9 11 13 15

输出

复制
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*/

 

posted on 2019-03-21 18:41  曹婷婷  阅读(484)  评论(0编辑  收藏  举报