PROG0162 - Kaprekar numbers
Consider an $n$-digit positive integer $k$. Compute its square $k^2$ and subdivide it into two groups of digits: the $n$ digits on the right and the remaining digits on the left. If the sum of both these integers equals $k$ and if $k^2$ has at least two digits, the integer $k$ is called a Kaprekar number. For example, $9$ is a Kaprekar number since $9^2 = 81$ and $8 + 1 = 9$, and $297$ is a Kaprekar number since $297^2 = 88209$ and $88 + 209 = 297$.
Assignment
Write a function isKaprekar that takes a positive integer as an argument. The function must return as its result the value True if the given integer is a Kaprekar number. Otherwise the function must return the value False.
Example
>>> isKaprekar(9)
True
>>> isKaprekar(297)
True
>>> isKaprekar(12)
False
>>> isKaprekar(-33)
False
>>> isKaprekar(4950)
True
Veronderstel dat $k$ een positief geheel getal is bestaande uit $n$ cijfers. Splits de cijfers van het getal $k^2$ op in twee groepen: de $n$ rechtse cijfers en de overige cijfers aan de linkerkant. Indien de som van deze twee getallen gelijk is aan $k$ en indien $k^2$ uit minstens twee cijfers bestaat, dan wordt $k$ een Kaprekargetal genoemd. Zo is $9$ een Kaprekargetal omdat $9^2 = 81$ en $8 + 1 = 9$ en is $297$ een Kaprekargetal omdat $297^2 = 88209$ en $88 + 209 = 297$.
Opgave
Schrijf een functie isKaprekar waaraan een positief geheel getal als argument moet doorgegeven worden. Deze functie moet als resultaat de waarde True teruggeven indien het gegeven getal een Kaprekargetal is. Anders moet de waarde False teruggegeven worden.
Voorbeeld
>>> isKaprekar(9)
True
>>> isKaprekar(297)
True
>>> isKaprekar(12)
False
>>> isKaprekar(-33)
False
>>> isKaprekar(4950)
True
Added by: | Peter Dawyndt |
Date: | 2011-08-29 |
Time limit: | 10s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | PY_NBC |
Resource: | None |