นี่คือรหัสสำหรับค้นหา GCD และ LCM ของตัวเลข n GCD หรือตัวหารร่วมที่ยิ่งใหญ่ที่สุดของจำนวนเต็มตั้งแต่สองตัวขึ้นไป ซึ่งไม่ใช่ศูนย์ทั้งหมด เป็นจำนวนเต็มบวกที่ใหญ่ที่สุดที่หารจำนวนเต็มแต่ละจำนวน GCD เรียกอีกอย่างว่า Greatest Common Factor
ตัวคูณร่วมน้อย (LCM) ของตัวเลขสองตัวคือจำนวนที่น้อยที่สุด (ไม่ใช่ศูนย์) ซึ่งเป็นผลคูณของตัวเลขทั้งสอง
อัลกอริทึม
Begin Take two numbers as input Call the function gcd() two find out gcd of n numbers Call the function lcm() two find out lcm of n numbers gcd(number1, number2) Declare r, a, b Assign r=0 a = (number1 greater than number2)? number1: number2 b = (number1 less than number2)? number1: number2 r = b While (a mod b not equal to 0) Do r = a mod b a=b b=r Return r Done lcm(number1, number2) Declare a a=(number1 greater than number2)?number1:number2 While(true) do If (a mod number1 == 0 and a number2 == 0) Return a Increment a Done End
โค้ดตัวอย่าง
#include<iostream> using namespace std; int gcd(int m, int n) { int r = 0, a, b; a = (m > n) ? m : n; b = (m < n) ? m : n; r = b; while (a % b != 0) { r = a % b; a = b; b = r; } return r; } int lcm(int m, int n) { int a; a = (m > n) ? m: n; while (true) { if (a % m == 0 && a % n == 0) return a; ++a; } } int main(int argc, char **argv) { cout << "Enter the two numbers: "; int m, n; cin >> m >> n; cout << "The GCD of two numbers is: " << gcd(m, n) << endl; cout << "The LCM of two numbers is: " << lcm(m, n) << endl; return 0; }
ผลลัพธ์
Enter the two numbers: 7 6 The GCD of two numbers is: 1 The LCM of two numbers is: 42