游客 Signup | Login
中文 | En

3472 - 2014-Freshman-02-Divisor

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

Input

输入两个正整数mn,用空格隔开。

Output

分别输出mn的最大公约数和最小公倍数,用空格隔开。
请注意行尾输出换行。

Examples

Input

15 9
7 35

Output

3 45
7 35

Solution C

int main(int argc, char* argv[])
{
int a,b,tem,m,n;
while(~scanf("%d%d",&a,&b))
{
m=a;n=b;
if(b>a)
{tem=a;a=b;b=tem;
}
while(b!=0)
{tem=b;
b=a%b;
a=tem;
}
printf("%d %d\n",a,m*n/a);
}	return 0; }

Solution C++

#include<iostream>
using namespace std;
int main()
{    
	int m,n;
	while(cin>>m>>n){
	if(m>n)
	{
		for(int k=n;k>0;k--)
			if(m%k==0&&n%k==0){cout<<k<<" ";break;}
		for(int i=m;i<m*n;i++)
			if(i%m==0&&i%n==0){cout<<i<<endl;break;}
		}
	
	else if(m<=n){
		for(int k=m;k>0;k--)
			if(m%k==0&&n%k==0){cout<<k<<" ";break;}
		for(int i=n;i<m*n;i++ )
			if(i%m==0&&i%n==0){cout<<i<<endl;break;}
		}
	}
	return 0;
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题