您的位置:首页 > 编程语言 > C语言/C++

Problem K: 最小公倍数与最大公约数

2017-09-15 20:18 218 查看
Description

输入两个整数,求它们的最大公约数与最小公倍数。

Input

输入两个整数

Output

第一行输出最大公约数; 第二行输出最小公倍数;

Sample Input

64

48

Sample Output

16

192

分析:

求最大公约数采用辗转相除的方法。

ex:

有两整数a和b:

① a%b得余数c

② 若c=0,则b即为两数的最大公约数

③ 若c≠0,则a=b,b=c,再回去执行①

例如求27和15的最大公约数过程为:

27÷15 余12 15÷12余3 12÷3余0 因此,3即为最大公约数

最大公倍数计算公式为a*b/最大公约数

代码:

#include<stdio.h>

int main(void)
{
int i,j;
void func(int i,int j);
scanf("%d %d",&i,&j);
func(i,j);
return 0;
}
void func(int i,int j)
{
int c,m,n;
m = i;n =j;
while(j!=0)
{
c = i%j; i = j; j = c;
}
printf("%d\n",i);
printf("%d\n",m*n/i);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ oj