# Native Code > برنامه نویسی با C > برنامه نویسی با Borland C++‎ Builder > سوال: چطوری ب.م.م و ک.م.م رو حساب کنم(کد نوشتم ولی کار نمیکنه)

## lordofphp

به نام خدا
سلام ببخشید دوستان من میخوام برنامهمم دوتا عدد بگیره و ب.م.م و ک.م.م رو بگیره ولی نمیدونم کدهام کار نمیکنه چرا؟
دوستان میشه بگن اشکال از کجاست؟
#include<iostream.h>
#include<conio.h>
void main(){
clrscr();
float i,j,a,b,c,d;
cout<<"Please Enter Numbers\n";
cout<<"Please Insert First Number:";
cin>>a;
cout<<"Please Insert Second Number:";
cin>>b;
for(i=0;i<=0;i/=){
 for(j=0;j<=0;j/=){
c=a/b;
}
}
cout<<"GCD:"<<c<<endl;
d=(a*b)/c;
cout<<"SCD:"<<d<<endl;
getch();
}


باتشکر

----------


## lordofphp

کسی نیست کمک کنه؟

----------


## انیشتین

سلام...
لطفا بنوبیس درست کار نمیکنه یعنی چی؟...اصلا اجرا نمیشه یا اجرا میشه و درست جواب نمیده؟...
البته به نظرم برنامه شما اجرا میشه و درست جواب نمیده.. به هرحال...

روش کارت به نظرم درست نیست ، بهتره برای محاسبخ ب م م از حلقه وایل استفاده کنید نه فور!
روش نبردبانی یادت هست که؟... دقیقا از همون الگوریتم استفاده کن... اون دو تا حلقه تو در توی وسط برنامه ات فکر کنم مشکل داره،
حد اقل من منطق اش رو نفهمیدم!

----------


## shahmohammadi

با سلام.
بله همون طور که دوستمون *انیشتین* فرمودند حلقه تون باید با وایل باشه و از الگوریتم نردبانی استفاده کنید.
الگوریتم نردبانی هم به این صورته که اگه m بزرگتر از n باشه به صورت زیر بمم رو محاسبه می کنیم:
int r=1;
while (r!=0)
{
   r=m%n;
   m=n;
   n=r;
}
return m;
حالا باید برای هر حالت a>b و a<b و a==b الگوریتم بالا رو بنویسید.

----------


## hfkh77

سلام.
این هم برنامه ای که خواسته بودی.
ک.م.م = کوچکترین مضرب مشترک.
ب.م.م = بزرگترین مقسوم علیه مشترک.

این رو برای این گفتم که بعدا مشکلی پیش نیاد.
فکر کنم منظور تو هم همین بود!!
 :لبخند گشاده!: 

این هم سورس کد برنامه که با codeblocks نوشته شده و تو محیط 
dev ++c
تست شده هستش.
اگر مشکلی بود خبرم کن.


#include <iostream>
#include "conio.h"

using namespace std;

int main(int argc, char *argv[])
{
    int a,b,c=0,d,maxm=1;
    cout<<"enter two number: "<<endl;
    cin>>a;
    cin>>b;

    if (a>b)
    {
            c=a;
    }
    if (b>a)
    {
            c=b;
    }

    for (int i=1;i<=c;i++)
    {
        if ((a%i==0)&(b%i==0))
        {
               maxm=i;
        }

    }
    cout<<"b.m.m : "<<maxm<<endl;
    cout<<"k.m.m : "<<((a*b)/maxm)<<endl;
    getch();
 return 0;

----------

