Dit is een vervolg op ISBN - while-lus1

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 10 cijfers. De eerste 9 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.
ISBN in tekst en streepjescode.

Indien $$x_1, \ldots, x_9$$ de eerste 9 cijfers van een ISBN-10 code voorstellen, dan wordt het controlegetal $$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.
Indien het controlegetal $$x_{10}$$ gelijk is aan het getal 10, wordt dit voorgesteld met de letter "X". De code "976360026X" is dus een geldige ISBN-10 code.

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 duplication2, DRY3).

Invoer

Een reeks ISBN-10 codes, elk op een afzonderlijke regel. De reeks wordt afgesloten door een regel die enkel het woord stop bevat. Elke ISBN-10 code wordt in één keer ingelezen als string. Het laatste teken kan een "X" zijn, dit betekent dat het controlegetal gelijk is aan 10.

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