首页 > 编程知识 正文

最大公约数和最小公倍数

时间:2023-05-05 22:35:36 阅读:198748 作者:1387

#include<stdio.h> int main(){int a,b,c,r,m;scanf("%d%d",&a,&b);if(a<b){c=a;a=b;b=c;}m=a*b;do{r=a%b;a=b;b=r;}while(r);printf("最大公约数是%d",a);printf("最小公倍数是%d",m/a);return 0;}

求最大公约数和最小公倍数的算法
输入两个数a(较大数),b(较小数);
用a模b产生余数r1,判断余数r1是否为0;
若为0,则最大公约数为b;
若不为0,则把b赋给a,r1赋给b,用新的a模新的b,产生新的余数r2,判断余数r2是否为0;
若为0,则最大公约数是b;
若不为0,则继续循环,直到余数为0;
a b r1 r2 r3 r4 r5·····Rn
余数Rn为0,则最大公约数是R(n-1);
最小公倍数是用a,b的乘积除以最大公约数

#include<stdio.h> int main(){int a,b,c,r,m;scanf("%d%d",&a,&b);if(a<b){c=a;a=b;b=c;}m=a*b; while(1){ r=a%b; if(r==0) { printf("最大公约数是%d",b);break;} else { a=b;b=r;}}printf("最小公倍数是%d",m/b);return 0;}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。