iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言如何求两整数的最大公约数与最小公倍数
  • 870
分享到

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

C语言整数整数最大公约数整数最小公倍数 2022-11-13 19:11:36 870人浏览 泡泡鱼
摘要

目录题目思路代码法一法二(局部变量)法三(全局变量)运行结果题目 用一函数求最大公约数,用另一函数调用此函数求出最大公约数,并用求出的最大公约数求最小公倍数。 具体要求如下: &nb

题目

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

具体要求如下:

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

思路

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

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

代码

法一

#include<stdio.h>
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<y) t=x,x=y,y=t;
	do
	{
		a=x%y;
		if(a!=0) x=y,y=a,a=x%y;
	}while(x%y!=0);
	printf("这两个整数的最大公约数为:%d\n",y);
	c=x_0/y;d=y_0/y;
	z=y*c*d;
	printf("这两个整数的最小公倍数为:%d\n",z);
	return 0;
}

法二(局部变量)

#include<stdio.h>
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<b) {t=a;a=b;b=t;}
	max_yue=yue(a,b);
	max_bei=bei(a,b);
	printf("这两个数最大公约数为:%d\n最小公倍数为:%d\n",max_yue,max_bei);
}

法三(全局变量)

#include<stdio.h>
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<b) {t=a;a=b;b=t;}
	max_yue=yue(a,b);
	max_bei=bei(a,b);
	printf("这两个数最大公约数为:%d\n最小公倍数为:%d\n",max_yue,max_bei);
}

运行结果

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: C语言如何求两整数的最大公约数与最小公倍数

本文链接: https://www.lsjlt.com/news/170888.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作