ک م م در c++

ک م م در c++ (کوچکترین مضرب مشترک)

در این جلسه به آموزش ک م م در c++ میپردازیم. پیش نیاز این آموزش آشنایی با متد و دستورات شرطی(if) در c++ است.

کوچکترین مضرب مشترک(ک م م)

کوچکترین مضرب مشترک یکی از مسایل در رشته ریاضی است. برای محاسبه ک م م بین دو عدد کافی است عددی پیدا کنیم که بر هر دو عدد بخش پذیر باشد و کوچکترین مضربی باشد که چنین ویژگی را دارد. برای مثال ک م م دو عدد ۲ و ۳ عدد ۶ است.ک م م سه ویژگی زیر را دارد:

  1. ک م م هر عددی با عدد ۰ میشود ۰ .
  2. ک م م هر عدد با ۱ میشود خود عدد.
  3. ک م م دو عدد یکسان برابر با خودش است.

پیاده سازی ک م م در c++

برای پیاده سازی ک م م در c++ از فرمول های ریاضی استفاده میکنند. ولی ما در اینجا با استفاده از دستورات شرطی به حل مسئله ک م م در c++ میپردازیم.

در ابتدای کار ما نیاز به دو عدد داریم که ک م م آنها را پیدا کنیم. ما این دو عدد را a و  b مینامیم. سپس متدی به نام lcm مینویسیم که a و b را میگیرد و خروجی آن ک م م a و  b است.روش پیاده سازی ک م م به این صورت است که ما عدد بزرگتر را در نظر میگیریم و مضرب های آن را محاسبه میکنیم(یعنی مثلا a*1 , a*2 …) سپس مضرب های حاصل را بر عدد کوچکتر تقسیم میکنیم اگر باقیمانده صفر باشد ک م م را پیدا کرده ایم.

#include <iostream>

#include <stdio.h>

using namespace std;

int LCM(int a , int b);

int main() {

    int a = 0;

    int b = 10;

    int lcm = LCM(a,b);

    printf(“%d”,lcm);

    return 0;

}

int LCM(int a, int b){

    int lcm = 0;

    if (a == 0 || b == 0) {

        lcm = 0;

    } else {

        if (a == b) {

            lcm = a;

        } else if (a < b) {

            if (b % a == 0) {

                lcm = b;

            } else {

                int factor = 2;

                bool foundlcm = false;

                while (!foundlcm) {

                    int multiple = factor*b;

                    if (multiple%a==0) {

                        lcm = multiple;

                        foundlcm = true;

                    }

                    factor++;

                }

            }

        } else if (a > b) {

            if (a % b == 0) {

                lcm = a;

            }else{

                int factor = 2;

                bool foundlcm = false;

                while (!foundlcm) {

                    int multiple = factor*a;

                    if (multiple%b==0) {

                        lcm = multiple;

                        foundlcm = true;

                    }

                    factor++;

                }

            }

        }

    }

    return lcm;

}

کد ک م م در c++ را میتوان چند قسمت کرد.

  1. اگر یکی از اعداد a و  b صفر باشند
  2. اگر اعداد a و b با هم برابر باشند.
  3. اگر اعداد a و b مضرب هم باشند(بر هم بخشپذیز باشند مثل ۲ و ۴).
  4. اگر جز حالات ۱ تا ۳ نباشند.

ما در کد بالا ابتدا چک کردیم که اعداد ورودی برایر ۰ هستند یا خیر. اگر نبودند برابری آن دو عدد را نیز بررسی کردیم و باز هم اگر برابر نبودند عدد بزرگتر را پیدا میکنیم و به دنبال مضربی از این عدد میگردیم که بر عدد کوچکتر نیز بخشپذیر باشد. سپس خروجی را برمیگردانیم.

دو متغیر factor به عنوان عددی متغیر برای محاسبه مضرب عدد بزرگتر و foundlcm نیز متغیری است برای خروج از while وقتی که ما ک م م را پیدا کردیم.

 

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *