Другие языки программирования и технологии

НОК 2-ух чисел - C++ Помогите, люди добрые. Как написать прогу на C++, которая вычисляет НОК двух чисел

#include "iostream"
using namespace std;
int main(){
long a,b,c,d,r; cout<<"a b: "; cin>>a>>b;
c=a; d=b; while(d)r=c%d,c=d,d=r;
cout<< a/c*b<< endl; cin.get(); cin.get();}
Василий Нику
Василий Нику
80 490
Лучший ответ
Шерикбай Зарипбек Уулу Спасибо огромное.
НОК двух чисел в общем случае равно произведению этих чисел.
Eldor Tolibov
Eldor Tolibov
93 021
Шерикбай Зарипбек Уулу мне нужно именно наименьший
#include < iostream >
#include < windows.h >
#include < cmath >
#include < algorithm >

using namespace std;

//Нахождение НОД по Евклиду
int Euclid_Alg(int, int);

void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
system("color 0A");

cout << "Введите 2 целых числа через пробел ";
int a, b;
for (;;)
{
bool bb = false;
cin >> a >> b;
if (!cin)
{
cin.clear();
bb = true;
}
if (cin.rdbuf()->in_avail() != 1)
{
cin.ignore(cin.rdbuf()->in_avail(), '\n');
bb = true;
}
if (bb)
{
cout << "Ошибка ввода. Повторите" << endl;
}
else
{
break;
}
}

int nod = Euclid_Alg(a, b);
int nok = a * b / nod;
cout << "Наименьшее общее кратное для чисел "
<< a << " и "
<< b
<< " составляет " << nok << endl;

cin.get(); cin.get();
}

//Нахождение НОД по Евклиду
int Euclid_Alg(int v1, int v2)
{
//Первое число должно быть больше, чем второе
//Проверка выполняется 1 раз для пары чисел
static bool b = true;
if (b && abs(v1) < abs(v2))
{
swap(v1, v2);
b = false;
}
//Обработка аргументов по методу Евклида
int output, v2_old = v2;
v2 = v1 % v2;
if (v2 == 0)
{
b = true;
output = v2_old;
}
else
{
v1 = v2_old;
output = Euclid_Alg(v1, v2);
}
return output;
}
#include

using namespace std;

int main()
{
cout << "Enter two numbers" << endl;
int a,b;
cin >> a >> b;
cout << "Kratnoe = " << a*b << endl;
return 0;
}

P.S Инклуд iostream подключи, хер его знает, не сохраняется тут.

Похожие вопросы