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.)


 
function Get-ISBN13 {
    $codes = (
        "978-1734314502",
        "978-1734314509",
        "978-1788399081",
        "978-1788399083"
    )
 
    foreach ($line in $codes) {
 
        $sum = $null
        $codeNoDash = $line.Replace("-","")
 
        for ($i = 0; $i -lt $codeNoDash.length; $i++) {
 
            if (($i % 2) -eq 1) {
 
                $sum += [decimal]$codeNoDash[$i] * 3
 
            }else {
 
                $sum += [decimal]$codeNoDash[$i]
 
            }
        }
 
        if (($sum % 10) -eq 0) {
 
            Write-Host "$line Good"
 
        }else {
 
            Write-Host "$line Bad"
 
        }
    }
}
Get-ISBN13
 