Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ เพื่อค้นหา GCD และ LCM ของ n Numbers


นี่คือรหัสสำหรับค้นหา 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