Naar aanleiding van mijn vorige getallenstukje speelde ik met de gedachte om een vaag oud plan, of een oud vaag plan, of een vaag, oud plan, te realiseren, om een factorenberekenprogrammaatje te maken en op internet te zetten. Of een ontbindeninfactorenprogrammaatje, dat komt op hetzelfde neer.
Had ik zoiets al niet eens gemaakt? Maar eens zoeken
met behulp van het erg handige commandoregelhulpmiddel
wcd
(“Wherever Change Directory”)
van
Erwin Waterlander.
Ik vond niet precies dat, maar wel iets over de grootste
gemene deler (ggd; Engels: gcd, greatest common
divisor),
toegepast voor het vereenvoudigen van muzikale
intervalfrequentieverhoudingen of breuken
in het algemeen.
Bleek te dateren van 1997, op basis van iets eerders van 27 december 1991, in verband met vingerzettingen van akkoorden op een gitaar. 21 jaar geleden al? Ja echt, dat kan wel kloppen. Op mijn eerste echte eigen pc, die ik toen, zo blijkt nu, al een jaar had: aanschafdatum 24 november 1990.
Hoe kan ik nu, op een computer die toen nog helemaal niet bestond, nog de datums van die bestandjes zien? Dat weet ik ook niet precies. Meegekomen in een pkzip-bestand, waarschijnlijk. Toen ik laatst mijn webserver verhuisde van de ene FreeBSD-VPS naar een heel andere FreeBSD-VPS, bleek zip (dat lijkt op het oude Pkzip) zelfs keurig de birth time (-Btime in find, st_birthtime in stat (2)) te hebben meegenomen.
Voor het berekenen van de grootste gemene deler bestaat een handig algoritme, dat ik waarschijnlijk al gevonden had in de tijd dat ik nog op een HP41C (1978?) programmeerde. Iets met een modulofunctie ofwel restberekening en dan omwisselen zodat je steeds met het kleinste getal doorgaat.
Ik heb er ooit over gedacht dat toe te passen voor een
snelle priemgetallentest: als je bekende kleine
priemgetallen vermenigvuldigt, zo veel als er in je
woordlengte passen (bijvoorbeeld
2*3*5*7*11*13 = 30030
, past nog in 16 bits),
en je bepaalt de grootste gemene deler daarvan met
een priemkandidaat, dan is die 1 als de factoren er niet
in zitten, anders groter.
Maar dan nog, waarom het zelf programmeren (die ontbinding in factoren dus) als het er al is? En ja, het is er, beter en geavanceerder dan ik het zelf ooit zou kunnen maken, bij de Université Nice Sophia Antipolis: factoris.
Daar rekende ik als flauw testje natuurlijk even 2013
na, waarvan ik de uitkomst immers al wist. Antwoord:
3 * 11 * 61
. Hè, een factor 11? Daar
had ik de vorige keer
niks van gezien. 671 is toch een
priemgetal?
Nee dus. 671 is wel degelijk 11 keer 61. Niet alleen op 6 december 2012 klopte mijn idee niet, ook na het inzien van mijn vergissing een dag later zat ik er weer naast, maar anders.
Toen herinnerde ik me een opmerking van iemand anders,
hier in nl.taal
:
“Je raaskalt als het gaat om getallen...”
Dát bedoelde hij dus. Dat 671 helemaal geen priemgetal is en ik na de factor 7 niet eens meer verder zocht.
Het sprookje dat begint met “In de kamer waren vier cijfers” is veel beter en leuker dan mijn verhaaltje van gisteren, al was het maar omdat het klopt en het mijne in meerdere opzichten niet.
Gisteren schreef ik:
“Logisch en duidelijk. De wereld klopt.”
Nu weer wel ja. Nu pas weer. Een dag te laat.
Bij nalezing blijkt dat ik
niet beweerd heb
dat 671
een priemgetal zou
zijn. Ik zou nu dus kunnen stellen dat het
verhaaltje wel klopte. Maar dat zou flauw
zijn omdat het niet waar is. Ik bedoelde wél
de volledige ontbinding in factoren te geven
en dacht écht dat 671
een priemgetal
was en ik had het níét goed gecontroleerd.
Dat geef ik toe.
Ontbinden in factoren zit standaard in het programma
Calculator (bij mij versie 3.36.0) dat standaard
in Linux Mint (bij mij versie 20.1 Ulyssa) zit.
Getal intypen, druk op de knop a×b
,
et voilà !
Voortaan geen rare vergissingen meer, dus.
Copyright © 2012 R. Harmsen. Alle rechten voorbehouden, all rights reserved.