当前位置:主页 > c/c++教程 > 求两整数的最大公约数与最小公倍数

C语言 如何求两整数的最大公约数与最小公倍数

发布:2023-03-11 09:00:01 59


本站精选了一篇相关的编程文章,网友万俊远根据主题投稿了本篇教程内容,涉及到C语言整数、整数最大公约数、整数最小公倍数、求两整数的最大公约数与最小公倍数相关内容,已被816网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

求两整数的最大公约数与最小公倍数

题目

用一函数求最大公约数,用另一函数调用此函数求出最大公约数,并用求出的最大公约数求最小公倍数。

具体要求如下:

  •  ①用全局变量。将最大公约数与最小公倍数设为全局变量,在主函数中输出它们的值。
  •  ②不用全局变量。最大公约数和最小公倍数由被调模块返回值。

思路

从两个数中选一个数,从这个数开始,逐步减一,当能够同时被两个数整除时,结束循环,即为最大公约数。

最小公倍数*最大公约数=两个数乘积。

代码

法一

#include
int main()
{
	int x,y,z,a,b,c,d,t,x_0,y_0;
	printf("请输入两个整数:");
	scanf("%d,%d",&x,&y);
	x_0=x;y_0=y;
	if(x

法二(局部变量)

#include
int yue(int a,int b)
{
	int i,s,max_yue;
	for(i=a;i>0;i--)
		if(a%i==0&&b%i==0) {max_yue=i;break;}
	return(max_yue);
}
int bei(int a,int b)
{
	int yue(int a,int b);
	int max_bei;
	max_bei=a*b/yue(a,b);
	return(max_bei);
}
int main()
{
	int a,b,t,max_yue,max_bei;
	int yue(int a,int b);
	int bei(int a,int b);
	printf("请输入两个正整数:");
	scanf("%d,%d",&a,&b);
	if(a

法三(全局变量)

#include
int max_yue,max_bei;
int yue(int a,int b)
{
	int i;
	for(i=a;i>0;i--)
		if(a%i==0&&b%i==0) {max_yue=i;break;}
	return(max_yue);
}
int bei(int a,int b)
{
	int yue(int a,int b);
	max_bei=a*b/yue(a,b);
	return(max_bei);
}
int main()
{
	int a,b,t;
	int yue(int a,int b);
	int bei(int a,int b);
	printf("请输入两个正整数:");
	scanf("%d,%d",&a,&b);
	if(a

运行结果

以上为个人经验,希望能给大家一个参考,也希望大家多多支持码农之家。


参考资料

相关文章

  • C语言如何求整数的位数及各位数字之和

    发布:2023-03-11

    这篇文章主要介绍了C语言如何求整数的位数及各位数字之和,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


网友讨论