Twee natuurlijke getallen $$a, b \in \mathbb{N}$$ zijn spiegelgetallen als elk getal bestaat uit de cijfers van het andere getal in omgekeerde volgorde. Zo zijn 123 en 321 spiegelgetallen.
Twee spiegelgetallen $$a, b \in \mathbb{N}$$ zijn spiegelfactoren van een natuurlijk getal $$p \in \mathbb{N}$$ als $$a \times b = p$$. Zo zijn 165 en 561 spiegelfactoren van 92 565, want \[ 165 \times 561 = 92\,565 \]
Spiegelfactoren zijn niet noodzakelijk uniek. Sommige natuurlijk getallen hebben helemaal geen spiegelfactoren. Andere hebben er dan weer meerdere. Zo heeft 1 115 892 288 drie paar spiegelfactoren: \[ \begin{array}{rcl}13\,248 \times 84\,231 = 1\,115\,892\,288 \\ 23\,184 \times 48\,132 = 1\,115\,892\,288 \\ 27\,504 \times 40\,572 = 1\,115\,892\,288 \end{array} \]
Twee getallen $$p, n \in \mathbb{N}_0$$, elk op een afzonderlijke regel.
Voor elk paar spiegelfactoren $$a, b \in \mathbb{N}$$ van $$p$$ waarvoor geldt dat $$a \leq b$$, moet een regel uitgeschreven worden van de vorm
a × b
Daarbij moeten de spiegelfactoren van $$p$$ uitgeschreven worden volgens stijgende eerste factor ($$a$$). Als $$p$$ meer dan $$n$$ spiegelfactoren heeft, dan moeten enkel de eerste $$n$$ spiegelfactoren uitgeschreven worden.
Om de spiegelfactoren van een getal $$p$$ te vinden, kan je alle mogelijke getallen overlopen die in aanmerking komen als spiegelfactor van $$p$$.
Als voor twee natuurlijke getallen $$a, b \in \mathbb{N}_0$$ geldt dat $$a \leq b$$ en $$a \times b = p$$, dan geldt ook dat $$a \leq \sqrt{p}$$. Gebruik deze eigenschap om het aantal mogelijke spiegelfactoren dat je moet overlopen te beperken.
Het karakter × dat je in de uitvoer (a × b) moet gebruiken, is een specifiek karakter dat je niet mag verwarren met de kleine letter x. Je kunt het karakter dus best kopiëren uit de beschrijving van de opgave, om het in je programmacode op te nemen.
Invoer:
1115892288
2
Uitvoer:
13248 × 84231
23184 × 48132
V. Dubrovsky werkte deze oplossingsmethode uit om de spiegelfactoren van 92 565 te vinden. Uit de grootte van het product kunnen we afleiden dat de factoren elk uit drie cijfers moeten bestaan. Laten we zeggen dat de eerste factor $$xyz$$ is (of $$100x + 10y + z$$) en de andere $$zyx$$. Het product eindigt op 5, dus $$x$$ of $$z$$ moet 5 zijn. Laten we aannemen dat het $$x$$ is. De andere factor begint met 5 en $$\frac{92565}{500} < 200$$, dus $$z$$ moet 1 zijn. Wat $$y$$ betreft, zien we dat de 6 in 92 565 het laatste cijfer is van $$5y + y$$, of $$6y$$, dus moet $$y$$ 1 of 6 zijn, en we kunnen deze kandidaten testen om te zien dat het 6 is. De getallen die we zoeken zijn 165 en 561.
Robert Filman wees erop dat we deze puzzel ook kunnen oplossen zonder de getallen daadwerkelijk met elkaar te vermenigvuldigen. De som van de cijfers van elk getal is de rest van dat getal gedeeld door 9, en de som van de cijfers van $$92\,565\!\!\!\!\mod{9} = 0$$. Dus zodra we vastgesteld hebben dat de laatste cijfers van de factoren die we zoeken 1 en 5 zijn en dat het middelste cijfer 1 of 6 is, zoals hierboven, kunnen we zien dat geen van de resulterende kandidaten (115, 165, 511, 561) een cijfersom heeft die deelbaar is door 9 en dat elke factor dus deelbaar moet zijn door 3 — wat betekent dat de cijfersom van elke factor een veelvoud van 3 moet zijn. De enige mogelijkheden zijn 165 en 561.