C语言中求最大公约数以及求最小公倍数
2016-10-30 21:57
274 查看
定义:
最小公倍数:几个数公有的倍数叫做这几个数的公倍数、其中最小的一个叫做这几个数的最小公倍数。
最大公约数:几个数共有的约数叫做这几个数的公约数‘其中最大的一个叫做这几个数的最大公约数。
最小公倍数=两个数的乘积÷最大公约数。
【一】更损相减法:
用较大的数减较小的数’,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等即可。
有两个整数m和n:
①若m>n,则m=m-n;
②若m<n,则n=n-m;
③若m=n,则m(或n)是两个数的最大公约数
④若m≠n,则再回去执行①
例如求16和12的最大公约数过程为:
16-12=4(12>4);12-4=8(8>4);8-4=4(4==4)
最小公倍数=16*12/4=48
因此,4为最大公约数、48最小公倍数。
有两个整数m和n:
①m%n的余数x
②若x为0,则m(或n)即为两个数最大的公约数
③若x不为0,则a=b,b=x,返回①
例如求16和12的最大公约数为:
16%12=4;12%4=0因此4为最大公约数。
从一枚举到m或n中最小的一个数,若m和n都可以被i整除,则i为最大公约数。
最小公倍数:几个数公有的倍数叫做这几个数的公倍数、其中最小的一个叫做这几个数的最小公倍数。
最大公约数:几个数共有的约数叫做这几个数的公约数‘其中最大的一个叫做这几个数的最大公约数。
最小公倍数=两个数的乘积÷最大公约数。
【一】更损相减法:
用较大的数减较小的数’,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等即可。
有两个整数m和n:
①若m>n,则m=m-n;
②若m<n,则n=n-m;
③若m=n,则m(或n)是两个数的最大公约数
④若m≠n,则再回去执行①
例如求16和12的最大公约数过程为:
16-12=4(12>4);12-4=8(8>4);8-4=4(4==4)
最小公倍数=16*12/4=48
因此,4为最大公约数、48最小公倍数。
#include<stdio.h> #pragma warning(disable:4996) int main() { int m,n,a,b; printf("please enter two numbers:"); scanf("%d %d", &m, &n); a = m; b = n; while ((m- n) != 0) { if (m > n)m = m - n; else n = n - m; } printf("The largest common divisor:%d\n", n); printf("The least common multiple:%d\n", a*b/n); system("pause"); return 0; }【二】辗转相除法
有两个整数m和n:
①m%n的余数x
②若x为0,则m(或n)即为两个数最大的公约数
③若x不为0,则a=b,b=x,返回①
例如求16和12的最大公约数为:
16%12=4;12%4=0因此4为最大公约数。
#include<stdio.h> #pragma warning(disable:4996) int main() { int m,n,x,a,b; printf("please enter two numbers:"); scanf("%d %d", &m, &n); a = m; b = n; while (n != 0) { x =m % n ; m = n; n = x; } printf("The largest common divisor:%d\n", m); printf("The least common multiple:%d\n", a*b/m); system("pause"); return 0; }【三】穷举法
从一枚举到m或n中最小的一个数,若m和n都可以被i整除,则i为最大公约数。
#include<stdio.h> #pragma warning(disable:4996) int main() { int m,n,i,a,b,x; printf("please enter two numbers:"); scanf("%d %d", &m, &n); a = m; b = n; for (i = 1; i <= a;i++) { if (m%i == 0 && n%i == 0) x = i; } printf("The largest common divisor:%d\n", x); printf("The least common multiple:%d\n", a*b/x); system("pause"); return 0; }
相关文章推荐
- C语言--辗转相除法求最大公约数和最小公倍数
- C语言求最大公约数和最小公倍数
- 两种方法求两个数的最大公约数和最小公倍数--C语言
- C语言解决“两个数的最大公约数和最小公倍数问题”
- c语言求最大公约数和最小公倍数
- 用C语言求两个数的最大公约数和最小公倍数
- C语言求最大公约数、最小公倍数
- 求最大公约数的算法以及最小公倍数
- C语言求最大公约数和最小公倍数
- 奇葩的求最大公约数、最小公倍数、分解质因数的做法(C语言)
- C语言--辗转相除法求最大公约数和最小公倍数
- 求最大公约数,最小公倍数(C语言实现)
- C语言:写两个函数,分别求两个最大公约数和最小公倍数
- 【c语言】用辗转相除法求最大公约数和最小公倍数
- C语言之函数调用07—求4个数的最大公约数和最小公倍数
- 更相损减法和辗转相除法 求最大公约数和最小公倍数(C语言)
- c语言求两个数的最大公约数和最小公倍数
- 求最大公约数,最小公倍数(C语言实现)
- C语言OJ项目参考(1047) 最大公约数和最小公倍数
- C语言 求最大公约数的三种方法,利用最大公约数求最小公倍数,通过分解质因数法来验证