Luhn test of credit card numbers: Difference between revisions

Content added Content deleted
(→‎{{header|Excel}}: Added an Excel LAMBDA version.)
(Add BCPL)
Line 1,340: Line 1,340:
0
0
1</pre>
1</pre>

=={{header|BCPL}}==
<lang bcpl>get "libhdr"

let luhn(s) = valof
$( let sum=0 and fac=1
for i = s%0 to 1 by -1
$( unless '0' <= s%i <= '9' resultis false
sum := sum + fac*(s%i - '0') rem 10 + fac*(s%i - '0')/10
fac := 3 - fac
$)
resultis sum rem 10 = 0
$)

let show(s) be
writef("%S: %S*N", s, luhn(s) -> "pass", "fail")

let start() be
$( show("49927398716")
show("49927398717")
show("1234567812345678")
show("1234567812345670")
$)</lang>
{{out}}
<pre>49927398716: pass
49927398717: fail
1234567812345678: fail
1234567812345670: pass</pre>


=={{header|Befunge}}==
=={{header|Befunge}}==