求最小公倍数的三种方法(C语言)
求最小公倍数的三种方法
1.常规暴力求解法 2.辗转相除法 3.迭乘法
//1.常规暴力求解法 #include <stdio.h> int main() { int a = 0; int b = 0; scanf("%d %d", &a, &b); int max = a > b ? a : b; //取得a,b中的最大值 while (max % a != 0 || max % b != 0) //如果不能同时整除a,b { max++; } printf("%d", max); return 0; }
//辗转相除法 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int a = 0; int b = 0; //循环输入a,b while (scanf("%d %d", &a, &b)) { int c = a;//将a赋值给c int d = b;//将b赋值给d //使a是大的值 if (a < b) { int x = a; a = b; b = x; } int tmp = b;//tmp存放a和b的最大公约数 while (a % b) { tmp = a % b; a = b; b = tmp; } //(c*d)除以最大公约数,就是最小公倍数 printf("%d和%d的最小公倍数是:%d ",c,d,(c * d) / tmp); } return 0; }
//3.迭乘法 int main() { int a = 0; int b = 0; scanf("%d %d", &a, &b); int i = 1; while ((a * i) % b != 0) { i++; } printf("%d", i * a); return 0; }