#ifndef _RATIONAL_ #define _RATIONAL_ #include using namespace std; class Rational { public: long long int num; long long int denum; Rational(); Rational(int num1); Rational(float x); Rational(double x); Rational(int num1, int num2); Rational& operator *=(const Rational& r); Rational operator *(const Rational& r) const; Rational& operator += (const Rational& r); Rational operator + (const Rational& r) const; Rational& operator -= (const Rational& r); Rational operator - (const Rational& r) const; Rational operator / (const Rational& r) const; Rational& operator /= (const Rational& r); Rational& operator *=(const int r); Rational operator *(const int r) const; Rational& operator += (const int r); Rational operator + (const int r) const; Rational& operator -= (const int r); Rational operator - (const int r) const; Rational operator / (const int r) const; Rational& operator /= (const int r); Rational& operator *=(const double r); Rational operator *(const double r) const; Rational& operator += (const double r); Rational operator + (const double r) const; Rational& operator -= (const double r); Rational operator - (const double r) const; Rational operator / (const double r) const; Rational& operator /= (const double r); Rational operator -() const; operator int () const; operator double() const; friend ostream& operator <<(ostream& out, const Rational& r); Rational sqrt(); private: // упрощение самого себя void simple(); // НОК long long int lcm(long long int num1, long long int num2); // НОД long long int gcd(long long int num1, long long int num2); }; #endif