Task

Validate the check digit of an ISBN-13 code:

   Multiply every other digit by  3.
   Add these numbers and the other digits.
   Take the remainder of this number after division by  10.
   If it is  0,   the ISBN-13 check digit is correct.


Use the following codes for testing:

   978-1734314502       (good)
   978-1734314509         (bad)
   978-1788399081       (good)
   978-1788399083         (bad)


Show output here, on this page



See also

   for details:   13-digit ISBN method of validation.       (installs cookies.)


 
load "stdlib.ring"
 
isbn = ["978-1734314502","978-1734314509", "978-1788399081", "978-1788399083","978-2-74839-908-0","978-2-74839-908-5","978 1 86197 876 9"]
 
for n = 1 to len(isbn)
    sum = 0
    isbnStr = isbn[n]
    isbnStr = substr(isbnStr,"-","")
    isbnStr = substr(isbnStr," ","")
    for m = 1 to len(isbnStr)
        if m%2 = 0
           num = 3*number(substr(isbnStr,m,1))
           sum = sum + num
        else
           num = number(substr(isbnStr,m,1))
           sum = sum + num
        ok
    next
    if sum%10 = 0
       see "" + isbn[n] + ": true" + nl
    else
       see "" + isbn[n] + ": bad" + nl
    ok
next 
 