PROG0159 - Emirp

no tags 

An emirp (prime spelled backward) is a prime number that results in a different prime when its digits are reversed. Note that this definition excludes palindromic numbers from being emirps. The number 13, for example, is an emirp because the number with the same digits in reverse order (31) is also a prime number. The number 23 is not an emirp, notwithstanding the fact that it is a prime number, since the number with the same digits in reverse order (32) is not a prime. Despite the fact that 101 is a prime number, it is not an emirp because it is a palindrome.

Assignment

  1. Write a function reversedNumber that takes a positive integer as its argument. The function must return an integer that is composed of the same digits as the given integer, but in reverse order. As such, when given the integer 1234 the function must return the reverse number 4321. Any leading zeros in the reverse number must be ignored, so that the reverse number of 1200 is 21.
  2. Write a function isPrime that takes a positive integer as an argument. The function must return the value True if the given integer is prime. Otherwise the value False must be returned.
  3. Use the functions reversedNumber and isPrime to write a function isEmirp, that takes a positive integer as an argument. The function must return the value True if the given integer is an emirp. Otherwise the value False must be returned.

Example

>>> reversedNumber(123)
321
>>> isPrime(2)
True
>>> isPrime(32)
False
>>> isPrime(31)
True
>>> isEmirp(13)
True
>>> isEmirp(23)
False
>>> isEmirp(101)
False

Een meirp is een priemgetal dat nog steeds een priemgetal blijft als de cijfers van het getal worden omgekeerd, en dat ook geen palindroom is. Zo is het getal 13 bijvoorbeeld een meirp omdat het getal met de cijfers in omgekeerde volgorde (31) ook een priemgetal is. Het getal 23 is geen meirp ondanks het feit dat het een priemgetal is, omdat het getal met de cijfers in omgekeerde volgorde (32) geen priemgetal is. Ondanks het feit dat het getal 101 een priemgetal is, is het geen meirp omdat het een palindroom is.

Opgave

  1. Schrijf een functie omgekeerdGetal waaraan een positief geheel getal als argument moet doorgegeven worden. De functie moet als resultaat een geheel getal teruggeven dat bestaat uit dezelfde cijfers als het gegeven getal, maar dan in omgekeerde volgorde. Zo moet de functie voor het getal 1234 het omgekeerde getal 4321 teruggeven. Eventuele voorloopnullen worden in het omgekeerde getal genegeerd, bvb. het omgekeerde van 1200 is 21.
  2. Schrijf een functie isPriem waaraan een positief geheel getal als argument moet doorgegeven worden. De functie moet als resultaat de waarde True teruggeven indien het gegeven getal een priemgetal is. Anders moet de waarde False teruggegeven worden.
  3. Gebruik de functies omgekeerdGetal en isPriem om een functie isMeirp te schrijven, waaraan een positief geheel getal als argument moet doorgegeven worden. De functie moet als resultaat de waarde True teruggeven indien het gegeven getal een meirp is. Anders moet de waarde False teruggegeven worden.

Voorbeeld

>>> omgekeerdGetal(123)
321
>>> isPriem(2)
True
>>> isPriem(32)
False
>>> isPriem(31)
True
>>> isMeirp(13)
True
>>> isMeirp(23)
False
>>> isMeirp(101)
False


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