开发者

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

开发者 https://www.devze.com 2022-12-02 13:05 出处:网络 作者: FanterC1107
目录题目思路代码python法一法二(局部变量)法三(全局变量)运行结果题目
目录
  • 题目
  • 思路
  • 代码python
    • 法一
    • 法二(局部变量)
    • 法三(全局变量)
  • 运行结果

    题目

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

    具体要求如下:

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

    思路

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

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

    代码

    法一

    #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;
    javascript	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;iwww.devze.com>0;i--)
    		if(a%i==0&&b%i==0) {max_yuphpe=i;break;}
    	return(max_yue);
    }
    int bei(int a,int b)
    {
    	int yue(int a,int b);
    	int max_bei;
    	max_bei=a*b/yu开发者_JAVA教程e(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);
    }

    运行结果

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

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

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号