Board logo

標題: 求最小公倍數 [打印本頁]

作者: 鄭繼威    時間: 2023-3-17 01:34     標題: 求最小公倍數

讓使用者任意輸入兩個正整數,求它們的最小公倍數。
提示:加入break敘述,使符合條件時,跳出迴圈。




法1
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     re:
  7.     int x, y, bigger;
  8.     cout<<"請輸入第一個數: ";
  9.     cin>>x;
  10.     cout<<"請輸入第二個數: ";
  11.     cin>>y;

  12.     //取得最大的數字
  13.     bigger=x>y?x:y;
  14.     cout<<x<<"與"<<y<<"的最小公倍數是: ";

  15.     //for 最大的那個數(bigger)~最多跑到x*y
  16.     //每次步伐為bigger比較快找到
  17.     for(int i=bigger; i<=x*y; i+=bigger)
  18.     {
  19.          //判斷有沒有整除( 餘數為0代表整除)
  20.          if(i%x==0 && i%y==0)
  21.          {
  22.              cout<<i<<endl<<endl;
  23.              break;
  24.          }
  25.     }
  26.     goto re;
  27.     system("pause");
  28.     return 0;   
  29. }
複製代碼
法2
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {  
  6.     re:
  7.     int x,y,tmp;
  8.     cout<<"請依序輸入兩個正整數: ";
  9.     cin>>x>>y;
  10.     int x_copy=x,y_copy=y;        //複製一份x,y 免得x,y被取代
  11.     cout<<x<<"與"<<y<<"的"<<endl;
  12.     while(x%y!=0)
  13.     {
  14.         tmp=x%y;
  15.         x=y;
  16.         y=tmp;   
  17.     }
  18.     //現在y就是我的最大公因數了
  19.     cout<<"最大公因數:"<<y<<endl<<endl;
  20.     //公式:lcm=a*b/gcd
  21.     cout<<"最小公倍數:"<<x_copy*y_copy/y<<endl;;
  22.    
  23.     goto re;
  24.     system("pause");
  25.     return 0;   
  26. }
複製代碼

作者: 邵凡榛    時間: 2023-3-17 21:02

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     int x,y,bigger;
  7.     cout<<"請輸入第1個數:";
  8.     cin>>x;
  9.     cout<<"請輸入第1個數:";
  10.     cin>>y;

  11.     bigger=x>y?x:y;
  12.     cout<<x<<"與"<<y<<"的最小公倍數是:";

  13.     for(int i=bigger;i<=x*y;i+=bigger)
  14.     {
  15.          if(i%x==0 and i%y==0)
  16.          {
  17.            cout<<i<<endl;
  18.            break;
  19.          }
  20.     }
  21.     system("pause");
  22.     return 0;   
  23. }
複製代碼

作者: 何權晉    時間: 2023-3-17 21:08

  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     int x,y, bing;
  6.     cout<<"Enter two random whole numbers: ";
  7.     cin>>x>>y;
  8.     bing=x>y?x:y;
  9.     cout<<x<<"&"<<y<<"'s LCD: ";
  10.    for(int i=bing;i<=x*y;i=i+bing)
  11.    {
  12.            if(i%x==0 && i%y==0)
  13.            {
  14.                                  cout<<i<<endl<<endl;
  15.                                  break;
  16.                                  }
  17.                                  }
  18.                       system("pause");
  19.                       return 0;
  20. }
複製代碼

作者: 張絜晰    時間: 2023-3-17 21:09

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main(){
  5.     int x,y,s,b=0;
  6.     cout<<"請輸入2個正整數:";
  7.     cin>>x>>y;
  8.     if(y>x){
  9.     s=x;}
  10.     else{
  11.     s=y;
  12.     for(int i=s;i>=1;i--){
  13.     if(x%i==0 && y%i==0){
  14.     b=i;
  15.     break;
  16.     }}
  17.     cout<<endl<<x<<"和"<<y<<"的最小公倍數是"<<x*y/b<<endl;
  18.     system("pause");
  19.     return 0;
  20.     }
複製代碼

作者: 廖秝瑜    時間: 2023-3-18 07:41

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     int x,y,bigger;
  7.     cout<<"請輸入第一個數:";
  8.     cin>>x;
  9.     cout<<"請輸入第二個數:";
  10.     cin>>y;
  11.    
  12.     bigger=x>y?x:y;
  13.     cout<<x<<"與"<<y<"的最小公倍數是:";
  14.     for(int i=bigger; i<=x*y; i+=bigger)
  15.     {
  16.             cout<<i<<endl;
  17.             break;
  18.             }
  19.     }  
  20.      }

  21.     system("pause");
  22.     return 0;   
  23. }
複製代碼

作者: 蔡沛倢    時間: 2023-3-18 13:31

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {  
  6.    int a,b,c=0;
  7.    cout<<"請輸入兩個整數:";
  8.    cin>>a>>b;
  9.    c=a>b?a:b;
  10.    cout<<a<<"和"<<b<<"的最小公倍數為:";
  11.    for(int d=c;d>=1;d++){
  12.    if(d%a==0 and d%b==0){
  13.    cout<<d<<endl;
  14.    break;
  15.    }
  16.    }
  17.    system("pause");
  18.    return 0;   
  19. }
複製代碼

作者: 呂得銓    時間: 2023-3-18 22:02

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     re:
  7.     int x, y, bigger;
  8.     cout<<"請輸入第一個數: ";
  9.     cin>>x;
  10.     cout<<"請輸入第二個數: ";
  11.     cin>>y;
  12.     bigger=x>y?x:y;
  13.     cout<<x<<"與"<<y<<"的最小公倍數是:";
  14.         for(int i=bigger; i<=x*y; i+=bigger)
  15.         {
  16.                 if(i%x==0 && i%y==0)
  17.                 {
  18.                         cout<<i<<endl;
  19.                         break;
  20.                 }
  21.         }
  22.         goto re;
  23.         system("pause");
  24.         return 0;
  25. }
複製代碼

作者: 呂宗晉    時間: 2023-3-19 14:24

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     re:
  7.     int x, y, bigger;
  8.     cout<<"請輸入第一個數: ";
  9.     cin>>x;
  10.     cout<<"請輸入第二個數: ";
  11.     cin>>y;
  12.      bigger=x>y?x:y;
  13.     cout<<x<<"與"<<y<<"的最小公倍數是: ";
  14.     for(int i=bigger; i<=x*y; i+=bigger)
  15.     {
  16.          if(i%x==0 && i%y==0)
  17.          {
  18.              cout<<i<<endl<<endl;
  19.              break;
  20.          }
  21.     }
  22.     goto re;
  23.     system("pause");
  24.     return 0;   
  25. }   
複製代碼

作者: 邱品惟    時間: 2023-6-26 17:08

  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {  
  5.     int x,y;
  6.     cout<<"請輸入第一個數: ";
  7.     cin>>x;
  8.     cout<<"請輸入第二個數: ";
  9.     cin>>y;
  10.     int big=x>y?x:y;
  11.     for(int i=big;i<=x*y;i=i+big)
  12.     {
  13.         if(i%x==0 && i%y==0)
  14.         {
  15.             cout<<x<<"與"<<y<<"的最大公倍數是: "<<i<<endl;
  16.             break;   
  17.         }
  18.     }
  19.     system("pause");
  20.     return 0;   
  21. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/) Powered by Discuz! 7.2