Board logo

標題: 有哪些因數 (七) - 求最大公因數 [打印本頁]

作者: 鄭繼威    時間: 2023-3-10 16:04     標題: 有哪些因數 (七) - 求最大公因數

有哪些因數 (四) - 求公因數
把最後的i輸出出來而已
讓使用者任意輸入兩個正整數, 求它們的最大公因數.

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

  12.     //取得最小的數字
  13.     smaller=x<y?x:y;
  14.     cout<<x<<"與"<<y<<"的最大公因數為: ";
  15.     //1~smaller
  16.     for(int i=1; i<=smaller; i++)
  17.     {
  18.         if(x%i==0 && y%i==0)
  19.         {
  20.             gcd=i;    //gcd一直被取代
  21.         }
  22.     }
  23.     cout<<gcd<<endl;
  24.     goto re;
  25.     return 0;   
  26. }
複製代碼

作者: 張絜晰    時間: 2023-3-10 20:23

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main(){
  5.     int x,y,z,s,a=0,b=0,t;
  6.     cout<<"請輸入3個正整數:";
  7.     cin>>x>>y>>z;
  8.     cout<<x<<"和"<<y<<"和"<<z<<"的公因數:"<<endl;
  9.     if(y>x){
  10.     s=x;
  11.     }
  12.     else{
  13.     s=y;
  14.     }
  15.     if(s>z)
  16.     {s=z;}
  17.     for(int i=1;i<=s;i++){
  18.     if(x%i==0 && y%i==0 && z%i==0){
  19.     cout<<i<<" ";
  20.     a=a+1;
  21.     t=i;
  22.     if(t>b){b=t;}
  23.     }}
  24.     cout<<endl<<x<<"和"<<y<<"和"<<z<<"有"<<a<<"個公因數,最大的是"<<b<<endl;
  25.     system("pause");
  26.     return 0;
  27.     }
複製代碼

作者: 黃子豪    時間: 2023-3-10 20:49

  1. #include<iostream>
  2. using namespace std;

  3. int main(){
  4.     int x, y, z, a=0, b=0, c;
  5.     cout<<"請輸入第一個數: ";
  6.     cin>>x;
  7.     cout<<"請輸入第二個數: ";
  8.     cin>>y;
  9.     cout<<"請輸入第三個數: ";
  10.     cin>>z;
  11.    
  12.     int smaller=x<y?x:y;
  13.     smaller=smaller<z?smaller:z;
  14.    
  15.     for(int i=1; i<=smaller; i++){
  16.         if(x%i==0 && y%i==0 && z%i==0){
  17.             c=i;
  18.             cout<<i<<" ";
  19.             a+=i;
  20.             b+=1;
  21.         }
  22.     }
  23.     cout<<"最大公因數:"<<c<<"\n共有"<<b<<"個\n總和:"<<a<<endl;
  24.    
  25.     cout<<"\n";
  26.     system("pause");
  27.     return 0;
  28. }
複製代碼

作者: 蔡沛倢    時間: 2023-3-10 20:49

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {  
  6.     int a,b,g,e=0,f=0,h=0;
  7.    cout<<"請輸入三個整數:";
  8.    cin>>a>>b>>g;
  9.    int c;
  10.    if(a<b){
  11.    c=a;
  12.            }
  13.    else{
  14.    c=b;
  15.         }
  16.    cout<<a<<","<<g<<"和"<<b<<"的公因數有:";
  17.    for(int d=1;d<=c;d++){
  18.            if(a%d==0 and b%d==0 and g%d==0){
  19.            cout<<d<<" ";
  20.            e=e+d;
  21.            f++;
  22.            h=d;
  23.                      }
  24.            }
  25.    cout<<"\n公因數加起來的數是:"<<e<<endl;
  26.    cout<<"有"<<f<<"個公因數";
  27.    cout<<"\n最大公因數為"<<h<<endl;
  28.    system("pause");
  29.    return 0;   
  30. }
複製代碼

作者: 曹祁望    時間: 2023-3-10 20:50

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main(){
  5.   int num1, num2, num3,/*sum=0, counter=0*/ big;
  6.   cout<<"輸入數字一:";
  7.   cin>>num1;
  8.   cout<<"輸入數字二:";
  9.   cin>>num2;
  10.   cout<<"請輸入數字三:";
  11.   cin>>num3;
  12.   //cout<<"公因數:";
  13.   int small=num1<num2?num1:num2<num3?num2:num3;
  14.   
  15.   int i;
  16.   for(i=1;i<=small;i++){
  17.       if(num1%i==0 and num2%i==0 and num3%i==0){
  18.         //counter++;
  19.         //sum+=i;
  20.         big=i;
  21.       }
  22.   }
  23.   cout<<"最大公因數"<<big<<endl;
  24.   system("pause");
  25.   return 0;
  26. }
複製代碼

作者: 邵凡榛    時間: 2023-3-10 20:50

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     int x,y,gcd;
  7.     int counter=0;
  8.     int sum=0;
  9.     cout<<"請輸入2個正整數: ";
  10.     cin>>x>>y;
  11.     cout<<x<<"和"<<y<<"的公因數:";
  12.         
  13.         for(int i=1;i<=x;i++)
  14.         {
  15.             if(x%i==0 and y%i==0)
  16.             {
  17.                gcd=i;
  18.                counter++;
  19.                cout<<i<<" ";
  20.                sum=sum+i;
  21.             }
  22.         }
  23.         cout<<endl;        
  24.         cout<<"總共有"<<counter<<"個公因數"<<endl;
  25.         cout<<"最大公因數為 :"<<gcd<<endl;
  26.         cout<<"公因數的總和為 :"<<sum<<endl;
  27.    
  28.     system("pause");
  29.     return 0;
  30. }
複製代碼

作者: 呂宗晉    時間: 2023-3-10 20:50

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main(){
  5.     int x,y,z,s,a=0,b=0,t;
  6.     cout<<"請輸入3個正整數:";
  7.     cin>>x>>y>>z;
  8.     cout<<x<<"和"<<y<<"和"<<z<<"的公因數:"<<endl;
  9.     if(y>x){
  10.     s=x;
  11.     }
  12.     else{
  13.     s=y;
  14.     }
  15.     if(s>z)
  16.     {s=z;}
  17.     for(int i=1;i<=s;i++){
  18.     if(x%i==0 && y%i==0 && z%i==0){
  19.     cout<<i<<" ";
  20.     a=a+1;
  21.     t=i;
  22.     if(t>b){b=t;}
  23.     }}
  24.     cout<<endl<<x<<"和"<<y<<"和"<<z<<"有"<<a<<"個公因數,最大的是"<<b<<endl;
  25.     system("pause");
  26.     return 0;
  27.     }
複製代碼

作者: 廖秝瑜    時間: 2023-3-10 20:52

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

作者: 盧玄皓    時間: 2023-3-10 20:53

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     re:
  7.           int x,y,counter,sum,z;
  8.           cout<<"請輸入2個數: ";
  9.           cin>>x;
  10.           cin>>y;
  11.          
  12.          
  13.           if(x<y){
  14.                 counter=x;
  15.                 }                        
  16.                 else{
  17.                 counter=y;
  18.             
  19.                           }
  20.                     cout<<x<<"和"<<y<<"和"<<"公因數:";      
  21.                     for(int i=1; i<=counter; i++)
  22.     {      
  23.                     if(x%i==0 && y%i==0)      
  24.                     {  
  25.                      int gcd;
  26.                      gcd=i;            
  27.                      cout<<i<<" ";
  28.                      counter++;
  29.                      sum+sum+i;      
  30.                                 }
  31.                        }
  32.                        
  33.                        
  34.                        
  35.                        
  36.                        int i;
  37.                        cout<<"最大公因數是"<<i<<endl;
  38.                        
  39.                        
  40.     goto re;         
  41.                                  
  42.     system("pause");
  43.     return 0;   
  44. }
複製代碼

作者: 鄭繼威    時間: 2023-3-10 20:53

8
作者: 何權晉    時間: 2023-3-10 20:53

  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int x,y,GCF,smallest;
  6. int total=0;
  7. int count=0;
  8. cout<<"Enter a random whole number: ";
  9. cin>>x;
  10. cout<<"Enter another random whole number: ";
  11. cin>>y;
  12. cout<<x<<"&"<<y<<"的Greatest Common Factor:";
  13. smallest=x>y?x:y;
  14. for(int i=1;i<=x;i++)

  15. {
  16.          if(x%i==0 && y%i==0)
  17.          {
  18.         GCF=i;
  19.          }         
  20. }      
  21. cout<<GCF<<endl;
  22. system("pause");
  23. return 0;   
  24. }
複製代碼

作者: 呂得銓    時間: 2023-3-12 22:46

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main(){
  5.     int x,y,z,s,a=0,b=0,t;
  6.     cout<<"請輸入3個正整數:";
  7.     cin>>x>>y>>z;
  8.     cout<<x<<"和"<<y<<"和"<<z<<"的公因數:"<<endl;
  9.     if(y>x){
  10.     s=x;
  11.     }
  12.     else{
  13.     s=y;
  14.     }
  15.     if(s>z)
  16.     {s=z;}
  17.     for(int i=1;i<=s;i++){
  18.     if(x%i==0 && y%i==0 && z%i==0){
  19.     cout<<i<<" ";
  20.     a=a+1;
  21.     t=i;
  22.     if(t>b){b=t;}
  23.     }}
  24.     cout<<endl<<x<<"和"<<y<<"和"<<z<<"有"<<a<<"個公因數,最大的是"<<b<<endl;
  25.     system("pause");
  26.     return 0;
  27.     }
複製代碼

作者: 邱品惟    時間: 2023-7-27 11:56

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





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