写一个求两个数的最大公约数和最小公倍数的函数

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 17:07:39
写一个求两个数的最大公约数和最小公倍数的函数

写一个求两个数的最大公约数和最小公倍数的函数
写一个求两个数的最大公约数和最小公倍数的函数

写一个求两个数的最大公约数和最小公倍数的函数
#include "stdio.h"
#include "conio.h"
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1{
temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
getch();
}

假设这两个数为:A、B
最大公约数:
用短除法求两个数的最大公约数,一般先用这两个数公有的质因数连续去除,一直除到所得的商是互质数为止,然后把所有的除数连乘起来,在除的过程中,有时也可以用两个数的公约数去除。
最小公倍数:
我们要找的是数要既是A的倍数,也是B的倍数.显然A*B是满足的,不过它是公倍数,但不一定是最小的.
当求出最大公约数D后,相当与A/...

全部展开

假设这两个数为:A、B
最大公约数:
用短除法求两个数的最大公约数,一般先用这两个数公有的质因数连续去除,一直除到所得的商是互质数为止,然后把所有的除数连乘起来,在除的过程中,有时也可以用两个数的公约数去除。
最小公倍数:
我们要找的是数要既是A的倍数,也是B的倍数.显然A*B是满足的,不过它是公倍数,但不一定是最小的.
当求出最大公约数D后,相当与A/D与B/D互质,它们的最小公倍数为它们的乘积A/D*B/D.
所以A,B的最小公倍数是A/D*B/D*D=(A*B)/D

收起