Luhn test of credit card numbers: Difference between revisions

no edit summary
No edit summary
Line 2,627:
print(luhn'1234567812345678')
print(luhn'1234567812345670')</lang>
 
=={{header|M2000 Interpreter}}==
{{trans|FreeBASIC}}
<lang M2000 Intertrpeter>
Module Checkit {
Function luhntest(cardnr$) {
cardnr$ = Trim$(cardnr$) ' we don't want spaces
if len(cardnr$)=0 then exit
Dim Base 0, reverse_nr$(Len(cardnr$))
Local i, j, s1, s2, l = Len(cardnr$)-1, l2=l+1
' reverse string
For i = 0 To l
reverse_nr$(i) = mid$(cardnr$,l2- i,1)
Next i
' sum odd numbers
For i = 0 To l Step 2
s1 = s1 + (Asc(reverse_nr$(i)) - Asc("0"))
Next i
' sum even numbers
For i = 1 To l Step 2
j = Asc(reverse_nr$(i)) - Asc("0")
j = j * 2
If j > 9 Then j = j Mod 10 + 1
s2 = s2 + j
Next i
If (s1 + s2) Mod 10 = 0 Then
= 1=1
Else
= 1=0
End If
}
Flush
Data "49927398716", "49927398717", "1234567812345678", "1234567812345670"
while not empty
over
print letter$;" = ";luhntest(letter$)
end while
}
Checkit
</lang>
{{out}}
<pre>49927398716 = True
49927398717 = False
1234567812345678 = False
1234567812345670 = TRue</pre>
 
=={{header|Mathematica}}==
404

edits