diff --git a/inc/functions.php b/inc/functions.php index 1409c7b1..6ac50343 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -223,9 +223,33 @@ } } + // Highest common factor + function hcf($a, $b){ + $gcd = 1; + if ($a>$b) { + $a = $a+$b; + $b = $a-$b; + $a = $a-$b; + } + if ($b==(round($b/$a))*$a) + $gcd=$a; + else { + for($i=round($a/2);$i;$i--) { + if ($a == round($a/$i)*$i && $b == round($b/$i)*$i) { + $gcd = $i; + $i = false; + } + } + } + return $gcd; + } + function fraction($numerator, $denominator, $sep) { - $fraction = Array($numerator, $denominator); - return "{$fraction[0]}{$sep}{$fraction[1]}"; + $gcf = hcf($numerator, $denominator); + $numerator = $numerator / $gcf; + $denominator = $denominator / $gcf; + + return "{$numerator}{$sep}{$denominator}"; } /*********************************************/