返回列表 發帖

求最小公倍數

本帖最後由 鄭繼威 於 2022-12-3 15:15 編輯

讓使用者任意輸入兩個正整數,求它們的最小公倍數。
提示:加入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. }
複製代碼

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

返回列表