Instruções
Implementar o algoritmo de Luhn
O algoritmo Luhn, também conhecido como algoritmo "módulo 10" ou "mod 10", é uma fórmula simples de soma de verificação usada para validar uma variedade de números de identificação, como números de cartão de crédito. Estes são os passos para validar um número usando o algoritmo de Luhn:
- Começando da direita, e excluindo o dígito mais à direita (o dígito verificador), dobre o valor de cada outro dígito.
- Se o resultado de dobrar um dígito for maior que
9, some os dígitos para obter um único dígito. Alternativamente, você pode subtrair9do resultado. - Some todos os dígitos, incluindo o dígito de verificação.
- Se a soma de todos os dígitos for um múltiplo de
10, então o número é válido; caso contrário, não é válido.
453914881. Os passos para validá-lo usando o algoritmo de Luhn são:
```md
Account number 4 5 3 9 1 4 8 8 1
Double every other 4 10 3 18 1 8 8 16 1
Sum 2-char digits 4 1 3 9 1 8 8 7 1
```
- Então some todos os números,
4 + 1 + 3 + 9 + 1 + 8 + 8 + 7 + 1 = 42. - Como
42não é um múltiplo de10, o número é inválido.
verify_card_number que recebe uma string de dígitos (representando um número de cartão) e verifica se ela é válida de acordo com o algoritmo de Luhn.
2. Dentro da função verify_card_number:
- Você deve lidar com quaisquer traços ou espaços que possam estar presentes no número do cartão passado para ele.
- Retorne
VALID!se o número do cartão for válido; caso contrário, retorneINVALID!.
O que fazer:
Testes:
- Você deve ter uma função chamada `verify_card_number`.
- `verify_card_number('453914889')` deve retornar `VALID!`.
- `verify_card_number('4111-1111-1111-1111')` deve retornar `VALID!`.
- `verify_card_number('453914881')` deve retornar `INVALID!`.
- `verify_card_number('1234 5678 9012 3456')` deve retornar `INVALID!`.
- `verify_card_number` deve retornar `VALID!` quando chamado com um número de cartão de crédito válido.
- `verify_card_number` deve retornar `INVALID!` quando chamado com um número de cartão de crédito inválido.
Preview