C/C++教程

求最小公倍数的三种方法以及对求最大公因数的补充 C语言从入门到入土(入门篇)(算法篇p4)

本文主要是介绍求最小公倍数的三种方法以及对求最大公因数的补充 C语言从入门到入土(入门篇)(算法篇p4),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

求最小公倍数的三种方法

求最大公因数的补充:


谁都不能阻挡你成为更优秀的人。

废话不多说,直接上代码。

求最小公倍数的三种方法

//法一:暴力(定义)求解
//最小公倍数的本质是一个最小的能同时被两整数整除的自然数
int main()
{
	int m = 0;
	int n = 0;
	scanf("%d%d", &m, &n);
	int a = 0;

	a = ((m) > (n)) ? (m) : (n);

	while (1)
	{
		if ((a % m == 0) && (a % n == 0))
		{
			break;
		}
		a++;
	}
	printf("%d", a);
	return 0;
}
//法二:

int main()
{
	int m = 0;
	int n = 0;
	int i = 1;
	scanf("%d%d", &m, &n);		 //当然这里也可以是
	while (((m * i) % n) != 0)   // m*i%n
	{
		i++;
	}
	printf("%d", m*i);  //注意这里
	return 0;
}
//法三:最大公因数求解
//如求 3 12  最小公倍数 就是  3*12/3(最大公因数),
//     3  5  最小公倍数 就是  3*5/1 。

int main()
{
	int m = 0;
	int n = 0;
	int c = 0;
	int a = 0;
	int b = 0;
	scanf("%d%d", &m, &n);
	a = m;
	b = n;
	while (c=a%b)
	{
		a = b;
		b = c;
	}
	//注意这里只有b才是最大公因数,这是辗转相除法规定的,
	//当然你也可以说是欧几里得法更帅不是嘛哈哈。
	printf("%d",m*n/b);
	return 0;
}

求最大公因数的补充:

//求最大公因数的两个补充,上面已经说到了辗转相除,
//这里就不过多赘述了。
//法一:更相减损法
//简单说:大的减小的,直到减数和差相等
int main()
{
	int m = 0;
	int n = 0;
	scanf("%d%d", &m, &n);
	
	while ((m - n) != 0)
	{
		if (m > n)
		{
			m=m - n;
		}
		else
		{
			n=n - m;
		}
	}
	printf("%d", m);//n也行
	return 0;
}
//法二:穷举法
//从两个数较小的数开始减,直到都能除尽。
int main()
{
	int m = 0;
	int n = 0;
	scanf("%d%d", &m, &n);
	int c = 0;

	c = ((m) < (n)) ? (m) : (n);
	for (c; c >= 1; c--)
	{
		if ((m % c == 0) && (n % c == 0))
		{
			printf("%d", c);
			break;
		}

	}
	return 0;
}

最后:感谢您的观看!

           感谢您的支持!

如果没有关注的话就来个关注吧!你的支持是作者写作的最大动力!

谢谢!!!

这篇关于求最小公倍数的三种方法以及对求最大公因数的补充 C语言从入门到入土(入门篇)(算法篇p4)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!