summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/functions.php28
1 files changed, 26 insertions, 2 deletions
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}";
}
/*********************************************/