【1131】C/C++经典程序训练1---最大公约数与最小公倍数(两种方法)

22 篇文章 1 订阅


C/C++经典程序训练1---最大公约数与最小公倍数

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

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

输入

输入两个整数,两个整数之间用空格分开。

输出

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

示例输入

64
48

示例输出

16
192
ps:最小公倍数为两个数的乘积除以最大公约数
方法一:辗转相除法
<span style="font-size:18px;">#include <cstdio>
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
int main()
{
	int m,n,m1,n1,t,r; 
	scanf("%d%d",&m,&n); 
	if(m<n)
	{
		t=m;
		m=n;
		n=t;
	}
        m1=m;
	n1=n;
	while(r)
	{
		r=m%n;
		m=n;
		n=r;
	}
	printf("最大公约数为%d 最小公倍数为%d\n",m,m1*n1/m); 
	return 0;
}</span>

方法二:

<span style="font-size:18px;">#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
int main()
{
	int i;
	int m,n;
	int min,max;
	int x,y;
	scanf("%d %d",&m,&n);
	if(m<n)
	{
		min=m;
		max=n;
	}
	else
	{
		min=n;
		max=m;
	}
	i=min;
	while(i>=1)
	{
		if(min%i==0&&max%i==0)
		{
			x=i;
			break;
		}
		i--;
	}
	printf("最大公约数为%d 最小公倍数为%d\n",x,m*n/x); 
}
</span>



  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值