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.

ISBN
ISBN in tekst en streepjescode.

Als $$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}\] Het controlecijfer $$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. Op die manier wordt het controlecijfer altijd door één enkel karakter voorgesteld.

Opgave

Lees een reeks ISBN-10 codes in en bepaal of ze corresponderen met geldige ISBN-10 codes. Zorg ervoor dat er geen overbodige herhaling van broncodefragmenten voorkomt in je oplossing (code duplication1, DRY2).

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

Voor elke ISBN-10 code één regel 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

Pythia spreekt …

In onderstaande video legt Pythia uit hoe je deze opgave kunt aanpakken. Bekijk deze video als opstapje naar het oplossen van de oefeningen over strings3.