Program Listing for File fraction.hpp

Return to documentation for file (src_ed/fraction.hpp)

#ifndef fraction_h
#define fraction_h


struct fraction{
  int num;
  int denom;
  const static int primes[];
  const static int nprimes;

  fraction(int _n, int _d) : num(_n), denom(_d) {}

  void simplify(){
    for(int i=0; i<nprimes; i++){
      if(num%primes[i] == 0 and denom%primes[i] == 0){
        num /= primes[i];
        denom /= primes[i];
        simplify();
      }
    }
  }

  friend std::ostream & operator<<(std::ostream &flux, const fraction &s){
    flux << s.num << '/' << s.denom;
    return flux;
  }
};

const int fraction::primes[] = {2,3,5,7,11,13,17,19};
const int fraction::nprimes = 8;



#endif /* fraction_h */