PROG0441 - Hey Presto !
A bit of conjuring from Augustus de Morgan:
- Think of a one-digit number and remember it. (boundaries included, e.g. $4$).
- Write down a number of any length: (e.g. $8392017483$).
- Determine the number that you obtain by switching every pair of consecutive digits of the number from step 2. If the number from step 2 has an odd number of digits, then the last digit of the number from step 2 is also the last digit of the number in step 3. For example, the current number from step 2 provides the number $3829104738$.
- Determine the number that you obtain when subtracting the smallest numbers from step 2 and step 3 from the largest. The example number from step 2 then produces as a result the number $8392017483 - 3829104738 = 4562912745$.
- Count the number of characters in the name of your father or mother, the name of your birth country, and the name of your favorite actor or artist and add them together. For example, the names Arnold, Canada and Eddy Vedder have a total of 23 characters (the space in the name of the artist was also counted as a character).
- Multiply the number you obtained in step 5 with four and its
reverse by 5. Add these together, plus the number from step 1. Based on
the examples we have given above, we obtain the number $23 \times 4 + 32
\times 5 + 4 = 256$.
- Form the number by putting the figures of the numbers from step 4 and step 6 in a row. On the basis of the examples that we have given above, we obtain as a result the number $4562912745256$.
With just the visible figure from the last
step, it is perfectly possible to trace the number from step 1. This is
possible by adding up the digits of the number. Keep repeating this
procedure until the result is a number consisting of one digit. The number
that results from the above examples provides the following sums: $$
\begin{eqnarray*} 4 + 5 + 6 + 2 + 9 + 1 + 2 + 7 + 4 + 5 + 2 + 5 + 6
&=& 58 \\ 5 + 8 &=& 13 \\ 1 + 3 &=& 4
\end{eqnarray*} $$ Indeed, that results in the number from step 1.
It works because all multiples of 9 eventually produce 9 when their digits
are added as above. The procedure asks you to create two multiples of 9
(in steps 4 and 6) and to combine their digits and add your own. Adding
the digits will thus yield 9 plus the number chosen (here, 13), and of
course adding those digits will
yield the number itself. The business with the father’s first name,
etc., is just smoke — any numbers can be used in those positions.
The calculation of step 6 will be always result in a multiple of 9.
Input
The input consists of 5 lines with the following information:
- a number between 1 and 9, boundaries included (step 1)
- an arbitrary natural number (step 2)
- the name of a father or mother (step 5)
- the name of a country of birth (Step 5)
- the name of an actor or artist (step 5)
Output
The first line of the output consists of the number you obtain in Step 7 by applying the trick to the values given in the input. A number is written on a new line each time that you add up the digits of the previous number. This procedure ends when the last number that was issued contains only one digit.
Example
Input:
4 8392017483 Arnold Canada Eddy Vedder
Output:
4562912745256 58 13 4
Een tovertrucje dat we ontleend hebben aan Augustus de Morgan:
- Denk aan een getal tussen 1 en 9 (grenzen inbegrepen, bijvoorbeeld $4$).
- Schrijf een natuurlijk getal van willekeurige lengte op een blaadje papier (bijvoorbeeld $8392017483$).
- Bepaal het getal dat je bekomt door elke twee opeenvolgende cijfers van het getal uit stap 2 om te wisselen. Als het getal uit stap 2 een oneven aantal cijfers heeft, dan is het laatste cijfer van het getal uit stap 2 ook het laatste cijfer van het getal voor stap 3. Het voorbeeldgetal uit stap 2 levert bijvoorbeeld het getal $3829104738$ op.
- Bepaal het getal dat je bekomt door van de getallen uit stap 2 en stap 3 het kleinste af te trekken van het grootste. Het voorbeeldgetal uit stap 2 levert dan als resultaat het getal $8392017483 - 3829104738 = 4562912745$ op.
- Tel het aantal karakters in de naam van je vader of moeder, de naam van je geboorteland, en de naam van je favoriete acteur of artiest en tel deze bij elkaar op. De namen Arnold, Canada en Eddy Vedder hebben bijvoorbeeld in totaal 23 karakters (hierbij werd de spatie in de naam van de artiest ook meegeteld als karakter).
- Vermenigvuldig het getal dat je bekomt uit stap 5 met vier en zijn omgekeerde met vijf. Tel deze twee getallen bij elkaar op, samen met het getal uit stap 1. Op basis van de voorbeelden die we hierboven gegeven hebben, bekomen we hierdoor het getal $23 \times 4 + 32 \times 5 + 4 = 256$.
- Vorm het getal door de cijfers van de getallen uit stap 4 en stap 6 achter elkaar te zetten. Op basis van de voorbeelden die we hierboven gegeven hebben, bekomen we hierdoor het getal $4562912745256$.
Als je enkel het getal dat je bekomt uit de laatste stap zichtbaar maakt, dan is het perfect mogelijk om het getal uit stap 1 te achterhalen. Dat kan door de cijfers van het getal bij elkaar op te tellen. Blijf deze procedure herhalen zolang het resultaat een getal is dat bestaat uit meerdere cijfers. Het getal dat resulteert uit bovenstaande voorbeelden levert dan bijvoorbeeld de volgende sommen op: $$ \begin{eqnarray*} 4 + 5 + 6 + 2 + 9 + 1 + 2 + 7 + 4 + 5 + 2 + 5 + 6 &=& 58 \\ 5 + 8 &=& 13 \\ 1 + 3 &=& 4 \end{eqnarray*} $$ Dat levert inderdaad het getal uit stap 1 op.
Het trucje werkt omdat alle veelvouden van 9 uiteindelijk het getal 9 opleveren als hun cijfers worden opgeteld zoals we hierboven hebben beschreven. De procedure vraagt je om twee veelvouden van 9 te maken (in stappen 4 en 6) en dan hun cijfers te combineren en daar het cijfer uit stap 1 bij te tellen. Door de cijfers op te tellen bekom je dus 9 plus het gekozen getal in stap 1 (hier dus 13), en natuurlijk zal de som van deze twee cijfers opnieuw het getal uit stap 1 opleveren. Het verwerken van de namen in stap 5 dient enkel om verwarring te veroorzaken — op deze positie kan je immers gelijk welke getallen opgeven. De berekening uit stap 6 zal immers altijd een veelvoud van 9 opleveren.
Invoer
De invoer bestaat uit vijf regels die de volgende informatie bevatten:
- een getal tussen 1 en 9, grenzen inbegrepen (stap 1)
- een willekeurig natuurlijk getal (stap 2)
- de naam van een vader of moeder (stap 5)
- de naam van een geboorteland (stap 5)
- de naam van een acteur of artiest (stap 5)
Uitvoer
De eerste regel van de uitvoer bestaat uit het getal dat je in stap 7 bekomt door het trucje toe te passen op de waarden die gegeven zijn in de invoer. Daarna wordt op een nieuwe regel telkens het getal uitgeschreven dat je bekomt door de som van de cijfers van het vorige getal te bepalen. Deze procedure eindigt als het laatste getal dat werd uitgeschreven slechts één cijfer bevat.
Voorbeeld
Invoer:
4 8392017483 Arnold Canada Eddy Vedder
Uitvoer:
4562912745256 58 13 4
Added by: | Peter Dawyndt |
Date: | 2014-01-20 |
Time limit: | 10s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | PY_NBC |
Resource: | None |