C++|最大公约数&最小公倍数(GCD,LCM)

// 最大公约数 void get_GCD() { int a, b; while (scanf_s("%d%d", &a, &b) != EOF) { /* 求解两个正整数的最大公约数: 假设为a,b;如果g是a,b的最大公约数,那么g也一定是b和(a mod b)的最大公约数 则可以迭代: a = b,b = a mod b把问题规模降下来 */ if (a == 0 && b == 0) { printf("No exist gcd\n"); continue; } else if (a == 0 && b != 0) printf("%d\n", b); else if (a != 0 && b == 0) printf("%d\n", a); else { while (a && b) { int tmp = a%b; a = b; b = tmp; } if (a == 0) printf("%d\n", b); else printf("%d\n", a); } } } // 最小公倍数 void get_LCM() { int a, b; while (scanf_s("%d%d", &a, &b) != EOF) { /* 求解两个正整数的最大公约数: 假设为a,b;如果g是a,b的最大公约数,那么g也一定是b和(a mod b)的最大公约数 则可以迭代: a = b,b = a mod b把问题规模降下来 */ int gcd; int a_copy = a; int b_copy = b; if (a == 0 && b == 0) { printf("No exist gcd\n"); printf("No exist lcm\n"); continue; } else if (a == 0 && b != 0) gcd = b; else if (a != 0 && b == 0) gcd = a; else { while (a && b) { int tmp = a%b; a = b; b = tmp; } if (a == 0) gcd = b; else gcd = a; } printf("%d\n", (a_copy*b_copy/gcd)); } }

【C++|最大公约数&最小公倍数(GCD,LCM)】

    推荐阅读