gcd,最大公约数和最小公倍数

点击查看代码
//辗转相除法 
/*      
        输入a,b
	如果b等于0,计算结束,a就是最大公约数;
	否则,计算a除以b的余数,让a等于b,而b等于那个余数;
	回到第一步。 
*/


#include<stdio.h> 

int main(){
	int a,b;
	printf("Please enter your first number(a):");
	scanf("%d",&a);
	printf("Please enter your second number(b):");
	scanf("%d",&b);

	while(b!=0){
		int temp = a%b;
		a = b;
		b = temp;
		printf("a=%d,b=%d\n",a,b); 
	}
	//gcd最大公约数 
	printf("The gcd of two number is %d\n",a);

	return 0;
}
点击查看代码
#include<bits/stdc++.h>

using namespace std;

//gcd是最大公约数 ,若求最小公倍数,则 a*b/gcd(a,b) 
int gcd(int a,int b){
	return b ? gcd(b,a%b) : a;		
} 
//Exp1 ? Exp2 : Exp3; 	
//Exp1、Exp2、Exp3 分别是表达式,
// 如果 Exp1 为真,则计算 Exp2 的值;如果 Exp1 为假,则计算 Exp3 的值。 

int main(){
	int a,b;
	scanf("%d %d",&a,&b);
	printf("最大公约数 = %d\n",gcd(a,b));
	printf("最小公倍数 = %d\n",a*b/gcd(a,b));
	return 0;
}
posted @ 2022-04-08 10:59  灵、主  阅读(23)  评论(0编辑  收藏  举报