题目1465:最简真分数
时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:1049
解决:425
-
题目描述:
-
给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。
-
输入:
-
输入有多组,每组包含n(n<=600)和n个不同的整数,整数大于1且小于等于1000。
当n=0时,程序结束,不需要处理这组数据。
-
输出:
-
每行输出最简真分数组合的个数。
-
样例输入:
-
7 3 5 7 9 11 13 15 3 2 4 5 0
-
样例输出:
-
17 2
-
-
#include<cstdio> #include<vector> #include<algorithm> using namespace std; bool cmp(int a,int b) { return a<b; } int gcd(int a,int b) { if(a%b==0)return b; return gcd(b,a%b); } int main() { vector<int> v; int n,i,j,count; while(~scanf("%d",&n)&&n) { for(i=0;i<n;++i) { scanf("%d",&j); v.push_back(j); } sort(v.begin(),v.end(),cmp); for(count=i=0;i<n-1;++i) for(j=i+1;j<n;++j) if(gcd(v[j],v[i])==1) ++count; v.clear(); printf("%d\n",count); } return 0; } /************************************************************** Problem: 1465 User: 3011216016 Language: C++ Result: Accepted Time:90 ms Memory:1024 kb ****************************************************************/