Ułamek egipski

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Ułamek egipski – to zapis liczby wymiernej dodatniej w postaci sumy różnych ułamków zwykłych, mających jedność w liczniku i różne mianowniki, np.:

 \frac{9}{10} = \frac{1}{2} + \frac{1}{3} + \frac{1}{15}

Można je tworzyć za pomocą algorytmu zachłannego.

Program w c++ umożliwiający tworzenie ułamków egipskich.

#include <iostream>
using namespace std;
int main()
{
  int l, m;
  cin >> l >> m;
  cout << l << "/" << m << " = ";
  int p = 2, tm = m;
  while (p)
  {
    if ((l*p) - m >= 0 and tm != p)
    {
      if ((l*p) - m == 0)
      {
        cout << "1/" << p << endl;
	break;
      }
      else 
      {
        cout << "1/" << p;
        l = (l*p)-m;
        m *= p;
      }
      cout << " + ";
    }
    p++;
  }
  cin.get();
  return 0;
}