C編程:求最大公約數,最小公倍數。


#include<stdio.h>
int main()
{
	int a,b;//兩個數
	int x,y;//暫時保存a,b以便后面求最小公倍數p=(a*b)/a
	int p;//最小公倍數
	int temp;
	while(scanf("%d %d",&a,&b)!=EOF)//ctrl+Z退出循環
	{
		x=a;
		y=b;//暫時保存a,b的原值到x,y中,因為后面a,b的值要變。
		while(b!=0)
		{
			temp=a%b;
			a=b;
			b=temp;
		}
		p=x*y/a;//求最小公倍數
		printf("最大公約數是%d 最小公倍數是%d\n",a,p);
	}
	return 0;
}

--===================================================================

用最大公約數,最小公倍數的函數求出來,如下:

#include<stdio.h>
//函數聲明
int gcd (int v1,int v2);//變量v1可以寫成變量a,因為編譯時不檢查!!!
int lcm(int v1,int v2);

int main()
{
	int a,b;//兩個數
	
	while(scanf("%d %d",&a,&b)!=EOF)//ctrl+Z退出循環
	{
		printf("最大公約數是%d 最小公倍數是%d\n",gcd(a,b),lcm(a,b));
	}
	return 0;
}
int gcd (int a,int b)//Greatest common divisor:最大公約數
{
	return b==0?a:gcd(b,a%b);
}
int lcm(int v1,int v2)// lowest common multiple :最小公倍數
{
	return v1*v2/gcd(v1,v2);
}



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com