点击查看代码
//辗转相除法
/*
输入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;
}