C++練習14:2つの数の最大公約数gcdを求めます

3272 ワード

C++練習14:2つの数の最大公約数gcdを求めます
  • 構想
  • コード
  • タイトル
    2つの等しくない正の整数の最大公約数gcdを求めます
    構想
    欧幾里得法(転がり相除法):欧幾里得アルゴリズムは転がり相除法とも呼ばれ、2つの非負の整数a,bの最大公約数を計算するために用いられる.1997と615の2つの正の整数の最大公約数を要求する場合、欧幾里得アルゴリズムを用いて、1997/615=3(余152)615/152=4(余7)152/7=21(余5)7/5=1(余2)5/2(余1)2/1=2(剰余0)これで最大公約数1は除数と剰余数で除算演算を繰り返し、剰余数が0の場合は現在の算式除数を最大公約数とすることにより、1997と615の最大公約数1が得られる.
    コード#コード#
    #include 
    using namespace std;
    
    int main (){
         
    	
    	int a,b,c,re;
    	
    	cout << "               !" << endl;
    	cout << "        :" ;
    	cin >> a;
    	
    	cout << "        :" ;
    	cin >> b;	
    	
    	c = a;    //   ab     ,         ,           
    	
    	if(a > b){
         
    		a = b;
    		b = c;
    	} 
    	
    	re = b % a;
    	
    	while(re>0){
         
    		b = a;
    		a = re;
    		re = b % a;
    	}
    	cout <<"           :" << a;
    }