C语言编程:输入两个正整数,输出其中最大公约数和最小公倍数。

2020-06-26 社会 369阅读

#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。

参考资料:

百度百科-辗除法

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com