-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUsePrime.php
59 lines (47 loc) · 1.28 KB
/
UsePrime.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use Macocci7\PhpMathInteger\Prime;
$p = new Prime();
// judge if $n is prime or not
$n = 3;
echo sprintf("Is %d prime? - %s.\n", $n, $p->isPrime($n) ? 'Yes' : 'No');
// judge if all of $n are prime or not
$n = [ 2, 3, 5, ];
echo sprintf(
"Are all of [%s] prime? - %s.\n\n",
implode(', ', $n),
$p->isPrimeAll($n) ? 'Yes' : 'No'
);
// a prime previous to $n
$n = 5;
echo sprintf("A prime previous to %d is %d.\n", $n, $p->previous($n));
// a prime next to $n
$n = 5;
echo sprintf("A prime next to %d is %d.\n\n", $n, $p->next($n));
// primes between $a and $b
$a = 6;
$b = 14;
echo sprintf(
"Primes between %d and %d are [%s].\n\n",
$a,
$b,
implode(', ', $p->between($a, $b))
);
// factorize
$n = 1234567890;
echo sprintf("Factorize %d:\n\n", $n);
$r = $p->factorize($n);
$l1 = $p->numberOfDigits(max(array_column($r, 0)));
$l2 = $p->numberOfDigits(max(array_column($r, 1)));
$s = str_repeat(' ', $l1 + 1);
$b = $s . str_repeat('-', $l2);
foreach ($r as $f) {
echo (
$f[0]
? sprintf("%" . $l1 . "d)%" . $l2 . "d\n%s\n", $f[0], $f[1], $b)
: sprintf("%s%" . $l2 . "d\n", $s, $f[1])
);
}
echo "\n";
// Factorized formula
echo $n . " = " . $p->factorizedFormula($n)['formula'] . "\n";