Implementacja Następująca funkcja Visual Basic for Application (VBA) zwraca cyfrę kontrolną Luhna dla podanego w parametrze ciągu. Jeśli dopiszesz ją do parametru uzyskasz pełny poprawny kod. Testowane dla IMEI telefonów.Private Function Mod10CheckDigit(Barcode As String) As Integer ' funkcja wyznacza cyfrę kontrolną dla otrzymanego ciągu zgodnie z algorytmem Luhn'a (mod 10) ' jeśli chcesz mieć test poprawności całego kodu FullBarcode długości n znaków to użyj wywołania np.: ' CzyKodPoprawny = (Mod10CheckDigit(Left(FullBarcode,n-1))=CInt(Right(FullBarcode,1)) ' Dim i As Integer Dim temp As Integer Dim alt As Boolean Dim suma As Integer Dim wynik As Integer
Barcode = Trim(Barcode) suma = 0 alt = True For i = Len(Barcode) To 1 Step -1 temp = CInt(Mid(Barcode, i, 1)) If alt Then 'co drugą cyfrę mnożymy przez 2 temp = temp * 2 If (temp > 9) Then temp = temp - 9 'sprowadzenie do jednej cyfry End If suma = suma + temp alt = Not alt Next i
wynik = suma Mod 10 If (wynik > 0) Then wynik = 10 - wynik Mod10CheckDigit = wynik End FunctionNastępująca funkcja C# służy do sprawdzania poprawności liczby, zwraca true, jeśli dana tablica cyfr jest prawidłową liczbą Luhna, a false, jeśli nie. bool CheckNumber(int[] digits)
int sum = 0; bool alt = false; for(int i = digits.Length - 1; i >= 0;