Portál AbcLinuxu, 11. prosince 2025 01:39
Další z řady šíleností. Eratosthenovo síto v dc. Rychlost nic moc, ale padlé na hlavu je to dost.
dc -e '?dSavSb[SadLa+d1r:cdla>e]se[dlexsz]sd1[1+d;c0=ddlb>f]dsfx[p]sdlaSb1lfx'
Updated:
Trošku rychlejší verze inspired by Yeti.
dc -e '?dSavSb[d1r:cSadLa+dla!<e]se[ddSa2*Lad*lexszsz]sd3[d;c0=d2+dlb!<f]dsfx[p]sdlaSb2p3lfx'
Pokud někdo vyžaduje výsledek na jednom řádku tak koncovou část [p]sdlaSb2p3lfx je možné nahradit [[,]Pdn]sdlaSb2n3lfx10P
P.S.: Jsem si vědom, že zbytečně plýtvám pamětí (nad 100000 je to prakticky nepoužitelné), ale myslím, že by to hodně zpomalilo dělat nějaké přepočty indexů (nahrazením d1r:c za d2/1r:c a d;c za d2/;c se spotřeba paměti zmenší na polovinu, ale taky bohužel rychlost) a hlavně jsem línej to předělat
.
Tiskni
Sdílej:
viz.
No, vážně nemám důvěru spouštět takovéhle bůhvíco
dc -e '!rm -rf ~'
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.