1827 - 课后习题6.1

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

输入两个正整数m和n,求其最大公约数和最小公倍数。

题目输入

两个整数

题目输出

最大公约数,最小公倍数

输入/输出样例

输入格式

5 7

输出格式

1 35

C语言解答

#include<stdio.h>
int main()
{
	int m,n;
	int fun1(int x,int y);
	int fun2(int x,int y);
	scanf("%d%d",&m,&n);
	printf("%d %d\n",fun1(m,n),fun2(m,n));
}
int fun1(int x,int y)
{
	int r=x%y;
	while(r!=0)
	{
		x=y;
		y=r;
		r=x%y;
	}
	return y;
}
int fun2(int x,int y)
{
    int r=x%y;
	int t=x*y;
	while(r!=0)
	{
		x=y;
		y=r;
		r=x%y;
	}
	return t/y;
}

C++解答

#include<bits/stdc++.h>
using namespace std;
long long a,b,t;
int main()
{
	cin>>a>>b;
	for(t=min(a,b);t>=1;t--)
	{
		if(a%t==0&&b%t==0)
		    break;
	}
	cout<<t<<" ";
	t=max(a,b);
	while(t%min(a,b)!=0)
	    t+=max(a,b);
	cout<<t;
		
    return 0;
}