#include
int main(){
int a,b,num1,num2,temp;
printf("please input two number:\n");
scanf("%d%d",&num1,&num2);
if(num1 temp = num1; num1 = num2; num2 = temp; } a = num1; b = num2; while(b!=0){ temp = a%b; a=b; b=temp; } printf("gongyueshu:%d\n",a); printf("gongbeishu:%d\n",num1*num2/a); } 扩展资料: 此题使用的是欧几里德算法,又称辗除法。 只要可计算余数都可用辗转相除法来求最大公因子,包括多项式、复整数及所有欧几里德定义域(Euclidean domain)。 辗转相除法的运算速度为 O(n2),其中 n 为输入数值的位数。 利用辗转相除法方法,可以较快地求出两个自然数的最大公因数,即gcd 或叫做HCF 。 最大公约数(greatest common divisor,简写为gcd;或highest common factor,简写为hcf) 所谓最大公因数,是指几个数的共有的因数之中最大的一个,例如 8 和 12 的最大公因数是 4,记作gcd(8,12)=4。 参考资料: