# C validating a credit card number dating pflueger reels

Here's how to do it: Step 4 - Add up all the digits in this number (except the checksum) Step 5 - If (sum x 9) MOD 10 = checksum, you have a valid card! If you were to do this in QBASIC, it would look like this: A = 0 FOR X = LEN(CARD$) - 1 TO 1 STEP -2 W = VAL(MID$(CARD$, X,1)) * 2 IF W 1 THEN A = A VAL(MID$(CARD$, X-1, 1)) NEXT X IF (A * 9) MOD 10 = VAL(RIGHT$, CARD$, 1) THEN PRINT "GOOD CARD! " Variables --------- A is the accumulator, adding up the digits on the card, every other one, doubled (doubled -9 if over 9).

CARD$ is the credit card, numeric portion only W is a working variable (temporary to hold the number before added to the accumulator) X is the position of the digit being worked upon, starting at the end of the card number (-1) and working backwards.

[ 2 * 10 /mod ] when ] map sum 10 mod nip ; : luhn? ) luhn-digit 0 = ; Is Luhn := function(n) local c, d, i, j, r; d := "0123456789"; j := 1; r := 0; for c in Reversed(String(n)) do i := Position(d, c); if i = fail then continue; fi; i := j*(i - 1); r := r Quo Int(i, 10) Rem Int(i, 10); j := 3 - j; od; return Rem Int(r, 10) = 0;end; List([49927398716, 49927398717, 1234567812345678, 1234567812345670], Is Luhn);# [ true, false, false, true ] # Will also work on strings, and will skip non-digits Is Luhn("4-992-739-871-6");# truedef luhn: def odds: . as $in | reduce range(1; length) as $i ([]; if ($i % 2) == 1 then . end); def digits: map([.]|implode|tonumber); def sumdigits: tostring | explode | digits | add; (tostring | explode | reverse ) as $reverse | ($reverse | odds | digits | add) as $s1 | ($reverse | evens | digits | map(. :list [output :list] output fput first :list every.other bf bf :listendto wordtolist :word output [?

] [ 10 /mod swapd suffix swap ] while drop ; : luhn-digit ( n -- n ) reversed-digits dup length iota [ 2dup swap nth swap odd?

I searched and found this: https://en.wikipedia.org/wiki/Luhn_algorithm You were right, up to the checksum/mod test where YOU claim: "If the final sum is divisible by 10, then the credit card number is valid.

If it is not divisible by 10, the number is invalid." This is NOT true.

If there is a difference between the two approaches, then the Wikipedia page needs updating, as might a lot of credit card code that has made some unfortunate people very grumpy.

Is this code validates all credit card numbers and show alert for all credit card details.your credit card number is valid and Visa card, your credit card number is valid and Master card so on..

is this code shows like that if not can i get a code like that Thank you I tried your code and had problems.

Then, consider another problem, security, physical security...

If you have had varied jobs, some that have taken me to locations on maps that just are not listed...