Cursus Raku / Addendum 🆕 / Omnia coniungere / Incepta parva mixta / Exercises / Cribrum Eratosthenis
Solutio: Cribrum Eratosthenis
Ecce solutio possibilis huius exercitationis.
Codex
my $limit = 30;
my %composite;
for 2 .. $limit -> $i {
next if %composite{$i};
for ($i², $i² + $i ... $limit) -> $multiple {
%composite{$multiple} = True;
}
}
say (2..$limit).grep({ !%composite{$_} });🦋 Inveni codicem fontem in archivo sieve.raku.
Exitus
(2 3 5 7 11 13 17 19 23 29)Commentarii
Pro indice signorum,
%compositememinit qui numeri deleti sint. Numerus adhuc in eo absens cum vicis eius venit primus est.Pro unoquoque primo
$i, multiplices eius ut series$i², $i² + $i ... $limitgenerantur et compositi notantur. A$i²incipere multiplices a primis minoribus iam tractatos praeterit.Haec una series est, non caput
formore C scriptum. Operator...duos primos valores sumit, gradum inter eos computat, et usque ad limitem pergit. Pro$i=3hoc significat a9incipere, deinde12, itaque gradus3est, et anulus totum indicem percurrit:my $i = 3; say ($i², $i² + $i ... 30); # (9 12 15 18 21 24 27 30)
Itaque
forunum indicem accipit per quem iteret —9, 12, 15, …— potius quam tres clausulas separatas.$i²numerum per exponentem superscriptum Unicode quadrat. Raku omnes tres formas$i * $i,$i ** 2et$i²accipit — eundem prorsus valorem computant, itaque elige quaecumque tibi optime legitur. Cifrae superscriptae (²,³, …) signa ordinaria sunt quae directe in fontem scribere vel inserere potes.