PROG0171 - ISBN
In the ISBN-10 (International Standard Book Numbering) system that was used until the end of 2006, each book is assigned a unique ten digit code. The first nine digits uniquely identify the book itself, whereas the last digit merely serves as a check digit to detect invalid ISBN-10 codes.
If $x_1, \ldots, x_9$ represent the first nine digits of an ISBN-10 code, the check digit $x_{10}$ is calculated as $$x_{10} = (x_1+ 2x_2+ 3x_3+ 4x_4+ 5x_5+ 6x_6+ 7x_7+ 8x_8+ 9x_9)\!\!\!\!\mod{11}$$ As a result, $x_{10}$ always takes a value in between 0 and 10. If the check digit is equal to 10, it is represented in the ISBN-10 code by the capital letter X.
Your task is to write a program that reads a sequence of ISBN-10 codes and for each of them determines whether or not they correspond to valid ISBN-10 codes. Try to avoid any unnecessary repetition of source code in your solution.
Input
A sequence of ISBN-10 codes, each on a separate line. The sequence ends with a line that only contains the word stop.
Output
For each ISBN-10 code read from input, a single line of output must be generated that either contains the word OK if the given code corresponds to a valid ISBN-10 code, or the word WRONG if the given code corresponds to an invalid ISBN-10 code.
Example
Input:
9971502100
9971502108
stop
Output:
OK
WRONG
Binnen het ISBN-10 (International Standard Book Numbering) systeem dat tot eind 2006 gebruikt werd, kreeg elk boek een unieke code toegewezen die bestaat uit tien cijfers. De eerste negen daarvan geven informatie over het boek zelf, terwijl het laatste louter een controlecijfer is dat dient om foutieve ISBN-10 codes te detecteren.
Indien $x_1, \ldots, x_9$ de eerste negen cijfers van een ISBN-10 code voorstellen, dan wordt het controlecijfer $x_{10}$ als volgt berekend: $$x_{10} = (x_1+ 2x_2+ 3x_3+ 4x_4+ 5x_5+ 6x_6+ 7x_7+ 8x_8+ 9x_9)\!\!\!\!\mod{11}$$ $x_{10}$ kan m.a.w. de waarden 0 tot en met 10 aannemen. Als het controlecijfer gelijk is aan tien, dan wordt dit in de ISBN-10 code genoteerd als de hoofdletter X.
Gevraagd wordt om een programma te schrijven dat een reeks ISBN-10 codes inleest en bepaalt of ze al dan niet corresponderen met geldige ISBN-10 codes. Zorg ervoor dat er in je oplossing geen overbodige herhaling van code voorkomt.
Invoer
Een reeks ISBN-10 codes, elk op een afzonderlijke regel. De reeks wordt afgesloten door een regel die enkel het woord stop bevat.
Uitvoer
Schrijf voor elke ISBN-10 code uit de invoer één regel uit die het woord OK bevat als de ISBN-10 code geldig is, of die het woord FOUT bevat als de ISBN-10 code ongeldig is.
Voorbeeld
Invoer:
9971502100
9971502108
stop
Uitvoer:
OK
FOUT
Added by: | Peter Dawyndt |
Date: | 2011-10-03 |
Time limit: | 10s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | PY_NBC |
Resource: | None |