ตัวคูณร่วมน้อย (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);