ตัวคูณร่วมน้อย (LCM) ของตัวเลขสองตัวคือจำนวนที่น้อยที่สุดที่เป็นผลคูณของทั้งสอง
ตัวอย่างเช่น สมมติว่าเรามีตัวเลขสองตัวต่อไปนี้:15 และ 9
15 = 5 * 3 9 = 3 * 3
ดังนั้น LCM ของ 15 และ 9 คือ 45
โปรแกรมหาค่า LCM ของตัวเลขสองตัวมีดังต่อไปนี้ -
ตัวอย่าง
#include <iostream> using namespace std; int main() { int a=7, b=5, lcm; if(a>b) lcm = a; else lcm = b; while(1) { if( lcm%a==0 && lcm%b==0 ) { cout<<"The LCM of "<<a<<" and "<<b<<" is "<<lcm; break; } lcm++; } return 0; }
ผลลัพธ์
The LCM of 7 and 5 is 35
ในโปรแกรมข้างต้น ตัวแปร lcm ถูกตั้งค่าให้มีค่ามากกว่าของตัวเลขสองตัว ซึ่งแสดงให้เห็นโดยใช้ข้อมูลโค้ดต่อไปนี้
if(a>b) lcm = a; else lcm = b;
หลังจากนี้ วง while จะทำงาน ในลูปนี้ หาก LCM หารด้วย a และ b ลงตัว จะเป็น LCM ของตัวเลขทั้งสองและแสดงขึ้น ถ้าไม่เช่นนั้น LCM จะเพิ่มขึ้นจนกว่าจะเป็นไปตามเงื่อนไขนี้
ข้อมูลโค้ดที่อธิบายเรื่องนี้มีดังนี้ -
while(1) { if( lcm%a==0 && lcm%b==0 ) { cout<<"The LCM of "<<a<<" and "<<b<<" is "<<lcm; break; } lcm++; }
อีกวิธีในการค้นหา LCM ของตัวเลขสองตัวคือการใช้สูตร LCM และ GCD สูตรนี้ระบุว่าผลคูณของตัวเลขสองตัวเท่ากับผลคูณของ LCM และ GCD
a * b = GCD * LCM
โปรแกรมหาค่า LCM ของตัวเลขสองตัวโดยใช้สูตรมีดังนี้ −
ตัวอย่าง
#include<iostream> using namespace std; int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b); } int main() { int a = 7, b = 5; cout<<"LCM of "<< a <<" and "<< b <<" is "<< (a*b)/gcd(a, b); return 0; }
ผลลัพธ์
The LCM of 7 and 5 is 35
ในโปรแกรมข้างต้น จะพบ LCM โดยใช้สูตร ขั้นแรก รับ GCD ของ a และ b โดยใช้ gcd() เป็นฟังก์ชันแบบเรียกซ้ำ มันมีพารามิเตอร์สองตัวคือ a และ b ถ้า b มากกว่า 0 แล้ว a จะถูกส่งกลับไปยังฟังก์ชัน main() มิฉะนั้น gcd() ฟังก์ชันจะเรียกตัวเองซ้ำด้วยค่า b และ a%b
ซึ่งแสดงให้เห็นโดยใช้ข้อมูลโค้ดต่อไปนี้
int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b); }
หลังจากได้รับ GCD แล้ว LCM จะถูกคำนวณโดยใช้สูตร จากนั้นจะแสดง ซึ่งแสดงในข้อมูลโค้ดต่อไปนี้
cout<<"LCM of "<< a <<" and "<< b <<" is "<< (a*b)/gcd(a, b);