سبد خرید

بستن سبد خرید

هیچ محصولی در سبد خرید نیست.

تعداد محصول: 0 کل قیمت: تومان0

محاسبه ب.م.م و ک.م.م دو عدد با ++C

محاسبه ب.م.م و ک.م.م دو عدد با ++C یکی از مسائل مهم ریاضی است که همیشه با آنها برخورد داشتید. در این مطلب، آموزش محاسبه ب.م.م و ک.م.م دو عدد را قدم به قدم توضیح می دهیم.

سوال مسئله: برنامه ای بنویسید که ب.م.م و ک.م.م دو عدد را محاسبه کند و در خروجی نشان دهد.

محاسبه ب.م.م دو عدد

برای محاسبه ب.م.م دو عدد روش هایی زیادی وجود دارد که یکی از آن ها روش اقلیدسی است. در روش اقلیدسی در واقع دو عدد را بر یکدیگر تقسیم کرده و بعد از تقسیم باقی مانده را به عنوان عدد کوچک تر و مقسوم علیه را به عنوان عدد بزرگتر سپس دوباره عدد بزرگتر را به عدد کوچکتر تقسیم میکنیم. این روش را آنقدر ادامه میدهیم تا باقی مانده ۰ شود آنگاه عدد کوچک تر ب.م.م دو عدد مورد نظر است.

حالا می خواهیم این روش را به زبان ++C پیاده سازی کنیم. فقط کد نویسی قسمت هایی مثل دریافت دو عدد از کاربر و نمایش متن به کاربر، از توضیح دادن میپرهیزیم (چون ساده است) و فقط قسمت اصلی کد را شرح میدهیم.

فرض کنید از کاربر دو عدد را دریافت کرده و آن ها را در متغیر هایی به نام های a و b ریخته ایم. از آنجایی که در روش اقلیدسی یک عملیات (تقسیم کردن) تکرار میشود در نتیجه باید از حلقه در برنامه ی خود استفاده کنیم. کد این قسمت به صورت زیر است:

while(true){
    
    if(b == 0) break;
    
    temp = a%b;
    a = b;
    b = temp;
}

 

در این کد از یک حلقه  استفاده میکنیم، و در ابتدای حلقه چک میکنیم که اگر عدد کوچکتر ما برابر ۰ شد از حلقه خارج میشود، همچنین از یک متغیر temp برای جابجایی مقادیر باقی مانده و a و b استفاده کردیم. درواقع درون این حلقه عدد بزرگتر جای خود را به عدد کوچکتر قبلی میدهد و سپس باقی مانده عدد بزرگتر بر عدد کوچک تر به عنوان عدد کوچکتر قرار میگیرد و زمانی که عدد کوچکتر برار ۰ شود عدد بزرگتر به عنوان ب.م.م در برنامه مورد استفاده قرار میگیرد. (با توجه به این نکته که ب.م.م هر عدد و ۰ خود همان عدد است)

نکته:
اگر کاربر اول عدد کوچکتر را وارد کند و سپس عدد بزرگتر، دور اول حلقه صرف جابجایی دو عدد میشود و سپس برنامه روند عادی خود را پیش میگیرد.

روش اول کد محاسبه ب.م.م (شماره یک)

#include <iostream>
using namespace std;
 
int main(int argc, char** argv) {
    
    int a, b, temp;
    cout<<"adad avval ra vared konid : ";
    cin>>a;
    cout<<"adad dovvom ra vared konid : ";
    cin>>b;
    
    while(true){
        
        if(b == 0) break;
        
        temp = a%b;
        a = b;
        b = temp;
    }
    
    cout<<"B.M.M do adad vared shode barabar ast ba :"<<a;
    
    return 0;
}

 

روش دوم محاسبه ب.م.م (شماره دو)

در این روش ابتدا عدد بزرگتر را مشخص میکنیم و سپس حاصل تفریق آن بر عدد کوچتر را به جای عدد بزرگتر قرار میدهیم و سپس این عملیات را دوباره تکرار می کنیم و این روند را آنقدر ادامه میدهیم تا دو عدد با یکدیگر برابر شوند آنگاه ب.م.م دو عدد مقدار اعداد است.

#include <iostream>
using namespace std;
 
int main(int argc, char** argv) {
    
    int a, b, temp;
    cout<<"adad avval ra vared konid : ";
    cin>>a;
    cout<<"adad dovvom ra vared konid : ";
    cin>>b;
    
    while(a != b) {
        if(a > b)
            a -= b;
        else
            b -= a;
    }
    
    cout<<"B.M.M do adad vared shode barabar ast ba :"<<a;
    
    return 0;
}

 

* توجه داشته باشید:
روش بالا فقط برای دو عدد طبیعی (غیر صفر) جواب میدهد، لذا اگر یکی از دو عدد برابر صفر باشد برنامه درون یک حلقه بی پایان گیر میکند. البته میشود با استفاده دستورات شرطی این مشکل را بر طرف نمود.
و نتیجه خروجی این برنامه به این صورت خواهد بود:

محاسبه ک.م.م دو عدد

برای محاسبه ی ک.م.م دو عدد نیاز است که از ب.م.م آن ها استفاده کنیم. در واقع ک.م.م دو عدد برابر است با حاصل ضرب آن دو، بخش بر ب.م.م آن ها. پس کد های ما دقیقا مانند برنامه قبل است با این تفاوت که نیاز است مقداری اولیه ی دو عدد را برای محاسبه ب.م.م درون متغیر ها نگهداری کنیم.
 کد آن به این صورت است:
روش اول کد محاسبه ک.م.م (شماره یک)
#include <iostream>
using namespace std;
 
int main(int argc, char** argv) {
    
    int a, b, n1, n2, temp, kmm;
    cout<<"adad avval ra vared konid : ";
    cin>>a;
    cout<<"adad dovvom ra vared konid : ";
    cin>>b;
    n1 = a;
    n2 = b;
    
    while(true){
        
        if(b == 0) break;
        
        temp = a%b;
        a = b;
        b = temp;
    }
    
    kmm = (n1 * n2) / a;
    
    cout<<"B.M.M do adad vared shode barabar ast ba :"<<a<<endl;
    cout<<"K.M.M do adad vared shode barabar ast ba :"<<kmm;
    
    return 0;
}

 

روش دوم محاسبه ک.م.م (شماره دو، بدون استفاده از ب.م.م)

در این روش بدون استفاده از ب.م.م دو عدد مقدار ک.م.م ان دو را محاسبه میکنیم. میدانیم که حداقل مقدار ک.م.م دو عدد برابر عدد بزرگ تر است درنتیجه این مقدار را بر دو عدد تقسیم کرده تا زمانی اگه باقی مانده برابر ۰ شود (بخش پذیر باشد) در غیر این صورت این مقدار را یک واحد بالا برده و دوباره تقسیم را انجام میدهیم. این عمل را آنقدر تکرار میکنیم که باقی مانده عدد بر دو عدد مورد نظر برار صفر شود آنگاه آن عدد برابر ک.م.م دو عدد است.

#include <iostream>
using namespace std;

int main(int argc, char** argv) {
    
    int a, b, max;
    cout<<"adad avval ra vared konid : ";
    cin>>a;
    cout<<"adad dovvom ra vared konid : ";
    cin>>b;
    
    if(a > b) max = a;
    else max = b;
    
    while(true){
        
        if(max % a == 0 && max % b == 0) break;
        else ++max;
    }
    
    cout<<"K.M.M do adad vared shode barabar ast ba :"<<max;
    
    return 0;
}

 

در روش فوق، ابتدا عدد بزرگتر مشخص میشود و سپس این مقدار آنقدر افزایش میابد تا زمانی که باقی مانده تقسیم آن بر دو عدد وارد شده برابر با ۰ شود.

و نتیجه خروجی این برنامه به این صورت خواهد بود:

موفق و پیروز باشید

پست های مشابه

19تیر 1400

CSS چیست و نقش آن در طراحی وب سایت که در این پست، طراحی و ساخت سایت را توضیح می دهیم، پس با ما همراه باشید. امروزه نرم افزارهایی برای طراحی وب سایت پدید آمده است که این امکان را می دهد که حتی بدون نیاز به دانش برنامه نویسی وب سایتی تولید و توسعه […]

265

0

18فروردین 1400

از آنجايي که دانشجويان زيادي جهت سفارش پروژه هاي C++ به سايت مراجعه نموده اند، در این مطلب پروژه ای مربوط به تبدیل اعداد دهدهی به اعداد دودویی است که در اختیار شما دوستان قرار دادیم…

560

0

10فروردین 1400

جابجایی متغیرها در زبان C ، این برنامه دو عدد را دریافت کرده و جابجا میکند و در خروجی چاپ می کند.که در این پروژه میخواهیم آموزش و کدی را در اختیار شما و دانشجویان قرار می‌دهیم.

1485

0

دیدگاه و پرسش


محمد

8 دی 1400

سلام، اگر یکی از اعداد صفر باشه مد نظر قرار نگرفته

    شاه‌کد

    9 دی 1400

    سلام دوست عزیز،
    از توجه شما بسیار ممنونم.
    بله، اعداد صفر مد نظر قرار نگرفته.
    بلکه باید برای اینکار شرطی گذاشته شود که اگر یکی از اعداد صفر بود محاسبه انجام نشود.