日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C語言?如何求兩整數的最大公約數與最小公倍數_C 語言

作者:FanterC1107 ? 更新時間: 2022-12-07 編程語言

題目

用一函數求最大公約數,用另一函數調用此函數求出最大公約數,并用求出的最大公約數求最小公倍數。

具體要求如下:

  • ?①用全局變量。將最大公約數與最小公倍數設為全局變量,在主函數中輸出它們的值。
  • ?②不用全局變量。最大公約數和最小公倍數由被調模塊返回值。

思路

從兩個數中選一個數,從這個數開始,逐步減一,當能夠同時被兩個數整除時,結束循環,即為最大公約數。

最小公倍數*最大公約數=兩個數乘積。

代碼

法一

#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);
}

運行結果

原文鏈接:https://blog.csdn.net/m0_58863372/article/details/122594022

欄目分類
最近更新