diff options
author | sijanec <sijanecantonluka@gmail.com> | 2020-11-30 18:04:39 +0100 |
---|---|---|
committer | sijanec <sijanecantonluka@gmail.com> | 2020-11-30 18:04:39 +0100 |
commit | f93bd5e403b0ae4315db8145660eff4c2d35450b (patch) | |
tree | ff7396ebf9fbc0f2ef737a30f984ed65ade2973a /mat/advent/0/better.php | |
parent | domača naloga za matematiko številka 18 (diff) | |
download | sola-gimb-2-f93bd5e403b0ae4315db8145660eff4c2d35450b.tar sola-gimb-2-f93bd5e403b0ae4315db8145660eff4c2d35450b.tar.gz sola-gimb-2-f93bd5e403b0ae4315db8145660eff4c2d35450b.tar.bz2 sola-gimb-2-f93bd5e403b0ae4315db8145660eff4c2d35450b.tar.lz sola-gimb-2-f93bd5e403b0ae4315db8145660eff4c2d35450b.tar.xz sola-gimb-2-f93bd5e403b0ae4315db8145660eff4c2d35450b.tar.zst sola-gimb-2-f93bd5e403b0ae4315db8145660eff4c2d35450b.zip |
Diffstat (limited to 'mat/advent/0/better.php')
-rwxr-xr-x | mat/advent/0/better.php | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/mat/advent/0/better.php b/mat/advent/0/better.php new file mode 100755 index 0000000..278ea32 --- /dev/null +++ b/mat/advent/0/better.php @@ -0,0 +1,52 @@ +#!/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"; +?> |