nyoj-40 公约数和公倍数【辗转相除法】
2015-10-02 10:04
357 查看
公约数和公倍数
时间限制:1000 ms | 内存限制:65535 KB难度:1
描述 小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。
输入 第一行输入一个整数n(0<n<=10000),表示有n组测试数据;
随后的n行输入两个整数i,j(0<i,j<=32767)。 输出 输出每组测试数据的最大公约数和最小公倍数 样例输入
3 6 6 12 11 33 22
样例输出
6 6
1 132
11 66
题目详解:
用较小数除较大数,再用出现的余数(第一余数)去除除数,令除数做新的较大数,余数做新的较小数,用新的较小数除较大数,如此反复,直到最后余数为0,最大公约数=最后的除数,最小公倍数=最初的两数乘积/最大公约数
用辗转相除法求最大公约数与最小公倍数时,如果最后的余数=1,那么这两个数互质,最大公约数为1.
ac code:
#include<stdio.h> int acd() { int n,i,j,k,temp; scanf("%d",&n); while(n--) { scanf("%d%d",&i,&j); if(i<j) { temp=i; i=j; j=temp; } k=i*j; while(j!=0)// { temp=i%j;//较大数/较小数 i=j; j=temp; } printf("%d %d",i,k/i); } } int main() { acd(); return 0; }
相关文章推荐
- (ZT)在int13h中使用es:bx的例子
- POJ3184 Ikki's Story I - Road Reconstruction(最大流)
- POJ 3074 Sudoku (DLX解经典数独)
- 杂七杂八
- Linux Shell 之 Shell 打印命令
- linux避免僵死进程方法总结 http://blog.csdn.net/astrotycoon/article/details/39717143
- 深入理解按位异或运算符
- 第二次作业
- POJ 3159 【朴素的差分约束】
- codeforces 478D D. Red-Green Towers(dp)
- scrapy学习--内置Spiders简介
- 买股票最大利润
- 补码
- 【IOS 开发学习总结-OC-28】★objective-c之foundation 框架——集合类的综述
- this关键字与super关键字
- kmp算法原理及实现
- waitpid(or wait)和SIGCHILD的关系 http://blog.csdn.net/liuxingen/article/details/38350347
- 【UML】用例图Use Case diagram
- win8搜索不到wifi怎么办?windows8搜索不到无线网络解决方法图解
- Git 从远程库克隆