今天我们来讲一下,最大公约数和最小公倍数,首先我们先来讲一下他们的概念:
最大公约数:指两个或多个整数共有约数中最大的一个。
最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。
我们先不用代码来计算最大公约数和最小公倍数:
1.辗转相除法
#include<stdio.h> int main() { int n, m; scanf("%d %d", &n, &m); int temp_n = n;//定义2个临时的变量 int temp_m = m; if(temp_n >= temp_m){ while (m!= 0) { int temp = n % m; n = m; m = temp; } printf("最大公约数是%d\n", n); //最小公倍数=两个数的乘积/最大公约数 printf("最小公倍数是%d\n", (temp_n*temp_m) / n); } else if (temp_n < temp_m) { while (n!=0) { int temp = m %n; m = n; n = temp; } printf("最大公约数是%d\n", m); printf("最小公倍数是%d\n", (temp_n * temp_m) / m); } }
2.相减法
最大数-最小数=0(其中最小数不变,除非调换位置,如下)
例如:15 和20
(20,15)-->(5,15)-->调转位置(必须最大数-最小数)-->(15,5)-->(10,5)-->(5,5)-------->0:5
这个5就是最大公约数
最小公倍数=两个数的乘积/最大公约数
#include<stdio.h> //辗转相减法 int main() { int n, m; scanf("%d %d", &n, &m); int temp_n = n;//定义2个临时的变量 int temp_m = m; //求最大公约数 while (temp_n!=temp_m) //如果相等,那随便其中一个都可以作为最大公约数 { if (temp_n > temp_m) { temp_n = temp_n - temp_m; } else { temp_m = temp_m - temp_n; } } int max_yue = temp_n; //求最小公倍数 int min_bei = (n * m) / max_yue; printf("最大公约数是%d\n", max_yue); printf("最小公倍数是%d\n", min_bei); }
❤️结语:
本次精彩内容已圆满结束!希望各位读者在阅读过程中能够收获满满。在此,特别感谢各位读者的支持与三连赞。如果文章中存在任何问题或不足之处,欢迎在评论区留言,蜗牛必定会认真对待并加以改进,以便为大家呈现更优质的文章。你们的支持与鼓励,将是博主不断前进的最大动力。再次感谢大家的陪伴与支持!