如何简化分数

我想在我的应用程序中简化一小部分。 分数类似于x / y,其中x和y是整数。 我想将分数简化为最简单的forms。 任何人都可以给我提示如何做到这一点。 提前致谢。

  • 计算x和y的最大公约数
  • 由GCD划分它们

Euclid算法是一种计算GCD的简便方法。

除以gcd(x,y)

二进制GCD算法是在计算机上计算GCD的快速方法。

  #include using namespace std; struct fraction { int n1, d1, n2, d2, s1, s2; }; void simplification(int a,int b) { bool e = true; int t; int z; for (int i = (a*b); i > 1;i--) { if ((a%i==0)&&(b%i==0)) { t = a / i; z = b / i; } else { e = false; } } cout << "simplest form=" << t << "/" << z << endl; } void sum(int num1, int deno1, int num2, int deno2) { int k,y; k = num1* deno2 + num2*deno1; y = deno2*deno1; cout << "addition of given fraction = " << k << "/" << y << endl; simplification(k, y); } void sub(int num1, int deno1, int num2, int deno2) { int k, y; k = num1*deno2 - num2*deno1; y = deno1*deno2; cout << "Substraction of given fraction = " << k << "/" << y << endl; } void mul(int num1, int deno1, int num2, int deno2) { int k, y; k = num1*num2; y = deno1*deno2; cout << "multiplication of given fration= " << k<< "/" <