Luhn test of credit card numbers: Difference between revisions
Content added Content deleted
No edit summary |
Not a robot (talk | contribs) (Add MACRO-11) |
||
Line 4,032: | Line 4,032: | ||
1234567812345678 = False |
1234567812345678 = False |
||
1234567812345670 = True</pre> |
1234567812345670 = True</pre> |
||
=={{header|MACRO-11}}== |
|||
<syntaxhighlight lang="macro11"> .TITLE LUHN |
|||
.MCALL .GTLIN,.PRINT,.EXIT |
|||
LUHN:: .GTLIN #5$ |
|||
MOV #5$,R0 |
|||
TSTB (R0) |
|||
BEQ 2$ |
|||
JSR PC,TEST |
|||
BNE 1$ |
|||
.PRINT #3$ |
|||
BR LUHN |
|||
1$: .PRINT #4$ |
|||
BR LUHN |
|||
2$: .EXIT |
|||
3$: .ASCIZ /PASS/ |
|||
4$: .ASCIZ /FAIL/ |
|||
5$: .BLKB 200 |
|||
.EVEN |
|||
TEST: MOV R0,R1 |
|||
CLR R2 |
|||
1$: TSTB (R0)+ |
|||
BNE 1$ |
|||
DEC R0 |
|||
2$: MOVB -(R0),R3 |
|||
SUB #60,R3 |
|||
ADD R3,R2 |
|||
CMP R0,R1 |
|||
BLOS 3$ |
|||
MOVB -(R0),R3 |
|||
SUB #60,R3 |
|||
MOVB 4$(R3),R3 |
|||
ADD R3,R2 |
|||
CMP R0,R1 |
|||
BHI 2$ |
|||
3$: SUB #12,R2 |
|||
BHI 3$ |
|||
RTS PC |
|||
4$: .BYTE ^D0,^D2,^D4,^D6,^D8 |
|||
.BYTE ^D1,^D3,^D5,^D7,^D9 |
|||
.END LUHN</syntaxhighlight> |
|||
{{out}} |
|||
<pre>.LUHN 49927398716 |
|||
PASS |
|||
.LUHN 49927398717 |
|||
FAIL |
|||
.LUHN 1234567812345678 |
|||
FAIL |
|||
.LUHN 1234567812345670 |
|||
PASS</pre> |
|||
=={{header|Mathematica}}/{{header|Wolfram Language}}== |
=={{header|Mathematica}}/{{header|Wolfram Language}}== |