MyTetra Share
Делитесь знаниями!
Наибольший общий делитель
Время создания: 20.07.2017 13:27
Раздел: Computer - Programming - C++ - Coursera White_Belt

/*

В stdin даны два натуральных числа.

Найти их наибольший общий делитель.

*/


#include <iostream>

using namespace std;


int main()

{

int x, y;

cin >> x >> y;


if(x == y)

{

cout << x;

}

else if(x == 0 && y!= 0)

{

cout << y;

}

else if(x != 0 && y == 0)

{

cout << x;

}

else

{

int dividend = 0;

int divider = 0;

int reminder = 0;


if(x > y)

{

dividend = x;

divider = y;

}

else

{

dividend = y;

divider = x;

}


reminder = dividend % divider;

while(reminder!=0)

{

dividend = divider;

divider = reminder;

reminder = dividend % divider;

}

cout << divider;

}


system("pause");

return 0;

}


Другой вариант, более лаконичный:


#include <iostream>


using namespace std;


int main() {

int a, b;

cin >> a >> b;

while (a > 0 && b > 0) {

if (a > b) {

a %= b;

} else {

b %= a;

}

}

cout << a + b;


return 0;

}




Так же в этом разделе:
 
MyTetra Share v.0.53
Яндекс индекс цитирования