Luhn test of credit card numbers: Difference between revisions
Content added Content deleted
(→{{header|Excel}}: Added an Excel LAMBDA version.) |
Not a robot (talk | contribs) (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}}== |