#!/usr/bin/env php <?php # shamelessly stolen from https://www.geeksforgeeks.org/prime-factor/ // PHP Efficient program to print all // prime factors of a given number to an arr // function to print all prime // factors of a given number n to an arr function primeFactors($n) { $n = abs($n); $f = array(); // Print the number of // 2s that divide n to the arr while($n % 2 == 0) { $f[] = 2; $n = $n / 2; } // n must be odd at this // point. So we can skip // one element (Note i = i +2) for ($i = 3; $i <= sqrt($n); $i = $i + 2) { // While i divides n, // print i and divide n while ($n % $i == 0) { $f[] = $i; $n = $n / $i; } } // This condition is to // handle the case when n // is a prime number greater // than 2 if ($n > 2) $f[] = $n; return $f; } $f = array(); for($i = 1; $i <= 100; $i++) { // za vse faktorje v 100! fprintf(STDERR, "calculating for %d ... ", $i); $x = primeFactors($i); fprintf(STDERR, "%s\n", implode(",", $x)); $f = array_merge($f,$x); } var_dump($f); $r = array_count_values($f); echo "ŠTEVILK 7 JE V 100! natanko ".$r[7]."\n"; ?>