最简真分数
时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:883
解决:357
题目描述:
给出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 <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;
}
关于gcd(公约数):
早在公元前300年左右,欧几里得就在他的著作《几何原本》中给出了高效的解法——辗转相除法。辗转相除法使用到的原理很聪明也很简单,假设用f(x,
y)表示x,y的最大公约数,取k = x/y,b = x%y,则x = ky + b,如果一个数能够同时整除x和y,则必能同时整除b和y;而能够同时整除b和y的数也必能同时整除x和y,即x和y的公约数与b和y的公约数是相同的,其最大公约数也是相同的,则有f(x,
y)= f(y, x % y)(y > 0),如此便可把原问题转化为求两个更小数的最大公约数,直到其中一个数为0,剩下的另外一个数就是两者最大的公约数。 ------------------资料来源“百度百科”
分享到:
相关推荐
2009-2010年计算机统考真题解析2009-2010年计算机统考真题解析2009-2010年计算机统考真题解析2009-2010年计算机统考真题解析2009-2010年计算机统考真题解析2009-2010年计算机统考真题解析2009-2010年计算机统考真题...
北大研究生入学考试真题-计算机类 包括专业类和数学类
计算机一级考试真题--选择题.pdf
第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省赛真题-研究生组 第14届蓝桥杯Python省...
山东自考真题----计算机与网络技术基础2012.4.pdf山东自考真题----计算机与网络技术基础山东自考真题----计算机与网络技术基础
计算机网络工程师-44-真题-无答案最终版.pdf
计算机网络工程师-83-真题-无答案最终版.pdf
计算机网络工程师-72-真题-无答案最终版.pdf
计算机网络工程师-70-真题-无答案最终版.pdf
计算机网络工程师-93-真题-无答案最终版.pdf
计算机网络工程师-74-真题-无答案最终版.pdf
计算机网络工程师-31-真题-无答案最终版.pdf
计算机网络工程师-32-真题-无答案最终版.pdf
计算机组成原理2010年考研计算机专业基础综合真题-参考答案有误.pdf
计算机网络工程师-4-真题-无答案最终版.pdf
计算机网络工程师-8-真题-无答案最终版.pdf
计算机2009年真题--选择题解析
第14届蓝桥杯Python省赛真题-大学A组 第14届蓝桥杯Python省赛真题-大学A组 第14届蓝桥杯Python省赛真题-大学A组 第14届蓝桥杯Python省赛真题-大学A组 第14届蓝桥杯Python省赛真题-大学A组 第14届蓝桥杯Python省赛...
精选华为HCNA、HCIA考试真题--精选库.doc.docx精选华为HCNA、HCIA考试真题--精选库.doc.docx精选华为HCNA、HCIA考试真题--精选库.doc.docx精选华为HCNA、HCIA考试真题--精选库.doc.docx精选华为HCNA、HCIA考试真题--...