3v4l.org

run code in 300+ PHP versions simultaneously
<?php $digits = array(9,8,7,6,5,4,3,2,1); $primes = array(1,2,3,5,7,11); //will return 1:1 for 5:5. The function does not try to simplify them further function simplify(Int $num, Int $denom, Array $primes){ //going from high primes to low primes foreach(array_reverse($primes) as $prime) { if (($num % $prime == 0) && ($denom % $prime == 0)) { if ($num % $denom == 0) { return [intdiv($num,$denom)]; } elseif ($denom % $num == 0) { return [1,intdiv($denom,$num)]; //return simplify($num,$denom,$primes); } return [$num / $prime,$denom / $prime]; } } return [$num,$denom]; } function simplifyArrays(Array $arr1, Array $arr2, Array $primes) { for($i=0;$i<count($arr1);$i++){ $num1 = $arr1[$i]; for($j=0;$j<count($arr2);$j++){ $num2 = $arr2[$j]; echo "simplify: $num1 / $num2 = " . implode("/",simplify($num1,$num2,$primes)) . "\n"; } } } simplifyArrays($digits,$digits,$primes);

preferences:
28.45 ms | 402 KiB | 5 Q