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

В чём ошибка? Помогите! C++

Напишите, пожалуйста с исправленной ошибкой ))
#include <iostream>
#include <utility>
#include <cmath>
using namespace std;
class Fraction {
public:
Fraction(const long long num, const long long den) : num_(num), den_(den) {
reduce();
}
private:
long long num_;
long long den_;
void reduce() {
if (den_ != 0) {
const auto x = gcd(num_, den_);
den_ /= x;
num_ /= x;
}
}
static long long gcd(long long a, long long b) {
a = abs(a);
b = abs(b);
while (a != b) {
if (a > b) swap(a, b);
b = b - a;
}
return a;
}
friend ostream& operator<<(ostream& out, const Fraction& frac) {
if (frac.den_ != 0) out << frac.num_ << " " << frac.den_;
else out << "Division by zero!";
return out;
}
};
int main() {
long long a, b;
cin >> a >> b;
const Fraction frac(a, b);
cout << frac << '\n';
system("pause");
}
Александр Иванов
Александр Иванов
78 255
Лучший ответ
#include < iostream >
#include < windows.h >

using namespace std;

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

cout << "Введите числитель и знаменатель дроби через пробел ";
int aa, bb;
cin >> aa >> bb;
int z = aa > bb? bb : aa;
bool b = false;
for (;;)
{
for (unsigned u = 2; u <= z; ++u)
{
if (aa % u == 0 && bb % u == 0)
{
aa /= u;
bb /= u;
break;
}
if (u == z)
b = true;
}
if (b) break;
}
cout << "Сокращённая дробь " << aa << "/" << bb << endl;

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