Wat getaleigenschappen (4)

Oud

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 factoren­bereken­programmaatje te maken en op internet te zetten. Of een ontbinden­in­factoren­programmaatje, 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 interval­frequentie­verhoudingen 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.

Bestandsgeboorte

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.

Factoren samenproppen

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 priem­getallen­test: 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.

Eh, juist ja

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.

Kloppend

Gisteren schreef ik:

Logisch en duidelijk. De wereld klopt.

Nu weer wel ja. Nu pas weer. Een dag te laat.


Flauw

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.


Naschrift 25 december 2022

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.