C语言中求最大公约数的函数

C语言中求最大公约数的函数,第1张

#include

"stdio.h"

int

main()

{

int

d1,d2,r

printf("输入两个正整数:")

scanf("%d

%d",&d1,&d2)

do

{

r=d1%d2

d1=d2d2=r

}while(d2!=0)

printf("最大公约数是:%d",d1)

}

//递归法

#include

"stdio.h"

int

fun(int

d1,int

d2)

{

if(d2!=0)

return

fun(d2,d1%d2)

else

return

d1

}

int

main()

{

int

d1,d2

printf("输入两个正整数:")

scanf("%d

%d",&d1,&d2)

printf("最大公约数是:%d",fun(d1,d2))

}

大公约数

将它们分解质因数,找出其中相同的质因数,再将它们相乘,就得到了最大公约数,如果两数的质因数中,没有一个是相同的,那么它们的最大公约数就是1.

比如(56,42)

56=7×2×2×2

42=7×2×3

其中7,2是相同的,那么它们的最大公约数就是2×7=14

***附加:最小公倍数

依照上述方法得到最大公约数后,再乘以其它所有剩下来的数.

比如[56,42]

56=7×2×2×2

42=7×2×3

其中7,2是相同的,它们的最大公约数就是14,剩下来的有2,2,3,将它们相乘,再乘以14,得到14×2×2×3=168,它们的最小公倍数就是168.如果两数的最大公约数是1,那么它们的最小公倍数就是它们的乘积.

(分解质因数:将一个数分解成几个质数的积的形式)

(质因数:除了本身和1之外没有其它约数的数,比如2,3,5,7,11等等,注:1不是质因数)

求两数的最大公约数和最小公倍数,你做的题目多了,速度就自然而然变快了,熟能生巧嘛~~~~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11077868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存