function CanonicForm($num)
 {
     $primes_all = array_reverse(primefactor($num));
     $primes_distinct = array_unique($primes_all);
     foreach ($primes_distinct as $key => $prime) {
         $exponent = count(array_keys($primes_all, $prime));
         $primes_list[$key] = $prime . '^{' . $exponent . '}';
     }
     return $primes_list;
 }
Exemple #2
0
function primefactor($num)
{
    $sqrt = sqrt($num);
    for ($i = 2; $i <= $sqrt; $i++) {
        if ($num % $i == 0) {
            return array_merge(primefactor($num / $i), array($i));
        }
    }
    return array($num);
}