C基础-公约公倍

题目描述
输入两个正整数mm和nn,求其最大公约数和最小公倍数。

输入描述
输入共1行,有2个正整数m,n(0\lt m,n\le 1000)m,n(0<m,n≤1000)

输出描述
输出m,nm,n的最大公约数和最小公倍数,以一个空格分隔开。

样例输入
2 3
样例输出
1
6

示例代码 1

  /*  辗转相除法求最大公约数 */
#include<iostream>
using namespace std;
int main()  
{
        int m, n,temp,t;
        cin>>m>>n;
        t=m*n;
        while(n != 0)  /* while(temp=m%n)没有排除 n==0 的情况   */
        {
                temp = m % n;
                m = n;
                n = temp;
        }
        cout<<m<<endl;
        cout<<t/m<<endl;
        return 0;
}

示例代码2

#include<iostream>
using namespace std;
int main()
{
	int m,n,temp,i;
	cin>>m>>n;
	if(m<n)
	{
		temp=m;
		m=n;
		n=temp;
	}
	for(i=n;i>0;i--)
	{
		if(m%i==0&&n%i==0)
		{
			break;
		}	
	}
	cout<<i<<endl;
	cout<<m*n/i<<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/three_cats/article/details/90049401