Rational.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef _RATIONAL_
  2. #define _RATIONAL_
  3. #include <iostream>
  4. using namespace std;
  5. class Rational {
  6. public:
  7. long long int num;
  8. long long int denum;
  9. Rational();
  10. Rational(int num1);
  11. Rational(float x);
  12. Rational(double x);
  13. Rational(int num1, int num2);
  14. Rational& operator *=(const Rational& r);
  15. Rational operator *(const Rational& r) const;
  16. Rational& operator += (const Rational& r);
  17. Rational operator + (const Rational& r) const;
  18. Rational& operator -= (const Rational& r);
  19. Rational operator - (const Rational& r) const;
  20. Rational operator / (const Rational& r) const;
  21. Rational& operator /= (const Rational& r);
  22. Rational operator -() const;
  23. operator int () const;
  24. operator double() const;
  25. friend ostream& operator <<(ostream& out, const Rational& r);
  26. Rational sqrt();
  27. private:
  28. // упрощение самого себя
  29. void simple();
  30. // НОК
  31. long long int lcm(long long int num1, long long int num2);
  32. // НОД
  33. long long int gcd(long long int num1, long long int num2);
  34. };
  35. #endif