PROG0026 - Palindromic numbers

A palindromic number is an integer that reads the same backwards. The following numbers are examples of palindromic numbers:

6, 55, 282, 5005, 78187, 904409, 3160613, 11111111

There are a lot of palindromic numbers. Moreover, every integer that can't be divided by 10 has an infinite number of multiples that are palindromic. The standard representation of a multiple of 10 can impossibly be palindromic, since its reverse would have a leading zero. 

Assignment

  • Write a function palindromic that prints a Boolean value as a result, indicating whether a given integer $n$ is a palindromic number or not. The number $n$ must be given to the function as an argument. 
  • Write the function palindromic to write a function palindromicmultiples, that prints the amount of possible multiples of a given number $n$ that exist of $c$ digits (possible leading zeroes are not counted as a digit) and are palindromic. The numbers $n$ ($1 < n < 1000$) and $c$ ($1 \leq c \leq 6$) must be given to the function as an argument.

 

Example

>>> palindromic(6)
True
>>> palindromic(1234)
False
>>> palindromic(98786)
False
>>> palindromic(3160613)
True
>>> palindromicmultiples(3, 1)
3
>>> palindromicmultiples(25, 3)
2
>>> palindromicmultiples(12, 4)
7
>>> palindromicmultiples(30, 3)
0
>>> palindromicmultiples(81, 6)
0

Explanation: There are three multiples of 3 with 1 digit: 3, 6 and 9; all integers of 1 digit are by definition palindromic. Of the palindromic numbers that consist of 3 digits, only 525 and 575 are multiples of 25. The palindromic multiples of 12 consisting of 4 digits are 2112, 2772, 4224, 4884, 6336, 6996 and 8448. There are no palindromic numbers that end in a zero, seeing that leading zeroes aren't allowed in integers. Not a single palindromic number of 6 numbers is divisible by 81. 

Een palindroomgetal is een natuurlijk getal dat voorwaarts en achterwaarts hetzelfde leest. De volgende getallen zijn voorbeelden van palindroomgetallen:

6, 55, 282, 5005, 78187, 904409, 3160613, 11111111

Er zijn heel wat palindroomgetallen. Meer zelfs, elk natuurlijk getal dat niet deelbaar is door 10 heeft een oneindig aantal veelvouden die palindromisch zijn. De standaardvoorstelling van een veeldvoud van 10 kan immers onmogelijk palindromisch zijn, aangezien diens omgekeerde een voorloopnul zou hebben.

Opgave

  • Schrijf een functie palindromisch die een Booleaanse waarde als resultaat teruggeeft die aangeeft of een gegeven natuurlijk getal $n$ een palindroomgetal is of niet. Het getal $n$ moet als argument aan de functie doorgegeven worden.
  • Gebruik de functie palindromisch om een functie palindroomveelvouden te schrijven, die als resultaat teruggeeft hoeveel veelvouden er bestaan van een gegeven getal $n$ die bestaan uit $c$ cijfers (eventuele voorloopnullen worden niet meegeteld als cijfer) en die palindromisch zijn. De getallen $n$ ($1 < n < 1000$) en $c$ ($1 \leq c \leq 6$) moeten als argument aan de functie doorgegeven worden.

 

Voorbeeld

>>> palindromisch(6)
True
>>> palindromisch(1234)
False
>>> palindromisch(98786)
False
>>> palindromisch(3160613)
True
>>> palindroomveelvouden(3, 1)
3
>>> palindroomveelvouden(25, 3)
2
>>> palindroomveelvouden(12, 4)
7
>>> palindroomveelvouden(30, 3)
0
>>> palindroomveelvouden(81, 6)
0

Verklaring: Er zijn drie veelvouden van 3 met 1 cijfer: 3, 6 en 9; alle natuurlijke getallen van 1 cijfer zijn per definitie palindromisch. Van de palindroomgetallen die bestaan uit 3 cijfers, zijn enkel 525 en 575 veelvouden van 25. De palindromische veelvouden van 12 bestaande uit vier cijfers zijn 2112, 2772, 4224, 4884, 6336, 6996 en 8448. Er zijn geen palindromische getallen die eindigen op een nul, aangezien we geen voorloopnullen toelaten bij natuurlijke getallen. Geen enkel palindroomgetal van 6 cijfers is deelbaar door 81.


Added by:Peter Dawyndt
Date:2011-07-19
Time limit:5s-30s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC
Resource:None

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.