C语言 求两个数最小公倍数和最大公因数

题目:

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

输入:

两个整数

输出:

最大公约数,最小公倍数

代码如下:

#include<stdio.h>
int main()
{
    
    
	int m,n,a,b,B,Y=1;
	scanf("%d%d",&m,&n);
	a=m;b=n;
	if(a>b)
	{
    
    
		a=n;b=m;
	}
	for(int i=2;i<=a;i++)
	{
    
    
		if(a%1==0&&b%i==0)
		{
    
    
			a/=i;
			b/=i;
			Y*=i;
			i=1;
		}
	}
	B=Y*a*b;
	printf("%d %d",Y,B);
 } 

注意:

  1. 求最大公因数运用的方法同理短除法,找两数公因数,除了公因数后再找公因数,直到两数再没有1以外的公因数,所有公因数之乘积即为最大公因数;
  2. 求最小公倍数就更简单了,将刚刚两数再没有1以外的公因数时的值相乘再乘上最大公因数,乘积即为最小公倍数。

猜你喜欢

转载自blog.csdn.net/m0_46735251/article/details/113113671