June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
|
|
@ -1,12 +1,11 @@
|
|||
sub is-semiprime (Int $n --> Bool) {
|
||||
not $n.is-prime and
|
||||
.is-prime given
|
||||
$n div first $n %% *,
|
||||
grep &is-prime, 2 .. *;
|
||||
$n div first $n %% *, flat grep &is-prime, 2 .. *;
|
||||
}
|
||||
|
||||
use Test;
|
||||
my @primes = grep &is-prime, 2 .. 100;
|
||||
my @primes = flat grep &is-prime, 2 .. 100;
|
||||
for ^5 {
|
||||
nok is-semiprime([*] my @f1 = @primes.roll(1)), ~@f1;
|
||||
ok is-semiprime([*] my @f2 = @primes.roll(2)), ~@f2;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ sub find-factor ( Int $n, $constant = 1 ) {
|
|||
INIT my $start = now;
|
||||
|
||||
# Infinite list of semiprimes
|
||||
constant @semiprimes = 4, 6, 9, -> $p { ($p + 1 ... &is-semiprime).tail } ... *;
|
||||
constant @semiprimes = lazy gather for 4 .. * { .take if .&is-semiprime };
|
||||
|
||||
# Show the semiprimes < 100
|
||||
say 'Semiprimes less than 100:';
|
||||
|
|
@ -33,6 +33,6 @@ say @semiprimes[^ @semiprimes.first: * > 100, :k ], "\n";
|
|||
|
||||
# Check individual integers, or in this case, a range
|
||||
my $s = 2⁹⁷ - 1;
|
||||
say "Is $_ semiprime?: ", is-semiprime( $_ ) for $s .. $s + 30;
|
||||
say "Is $_ semiprime?: ", .&is-semiprime for $s .. $s + 30;
|
||||
|
||||
say 'elapsed seconds: ', now - $start;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue