Jump to content

Luhn test of credit card numbers: Difference between revisions

Added BBC BASIC
(Added factor language)
(Added BBC BASIC)
Line 215:
Return !Mod(Sum,10)
}</lang>
 
=={{header|BBC BASIC}}==
<lang bbcbasic> FOR card% = 1 TO 4
READ cardnumber$
IF FNluhn(cardnumber$) THEN
PRINT "Card number " cardnumber$ " is valid"
ELSE
PRINT "Card number " cardnumber$ " is invalid"
ENDIF
NEXT card%
END
DATA 49927398716, 49927398717, 1234567812345678, 1234567812345670
DEF FNluhn(card$)
LOCAL I%, L%, N%, S%
L% = LEN(card$)
FOR I% = 1 TO L%
N% = VAL(MID$(card$, L%-I%+1, 1))
IF I% AND 1 THEN
S% += N%
ELSE
N% *= 2
S% += N% MOD 10 + N% DIV 10
ENDIF
NEXT
= (S% MOD 10) = 0</lang>
 
=={{header|C}}==
Cookies help us deliver our services. By using our services, you agree to our use of cookies.