결제 카드 번호는 16자리다. 왼쪽 6자리는 카드를 발급한 은행을 가리키고, 그다음 2자리는 카드 종류(체크, 신용, 기프트 등)를 나타낸다. 9번째부터 15번째까지는 카드의 일련번호이고, 마지막 한 자리는 번호 전체가 올바른지 확인하는 검사 숫자다. 그래서 결제 프로그램은 잘못 입력한 번호를 대부분 그 자리에서 걸러낸다.
올바른 카드 번호는 다음 절차가 성공하도록 마지막 자리를 정한 번호다.
- 왼쪽부터 각 자리에 1부터 16까지 번호를 붙인다.
- 자리 번호가 홀수인 숫자를 2배 한다.
- 2단계 결과가 9보다 크면 9를 뺀다.
- 3단계 결과를 모두 더한 값에, 자리 번호가 짝수인 숫자의 합을 더한다.
- 이 합이 10의 배수면 카드 번호가 올바르고, 아니면 잘못된 번호다.
카드 번호를 여러 개 읽어 각각이 올바른지 판정하라.