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 subtrair 9 do 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.
Por exemplo, considere o número 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 42 não é um múltiplo de 10, o número é inválido.
Neste laboratório, você irá construir um validador de cartão de crédito usando o algoritmo de Luhn. Objetivo: Cumprir as user stories abaixo e fazer todos os testes passarem para completar o laboratório. Histórias de Usuário: 1. Você deve definir uma função chamada 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, retorne INVALID!.
Quando você concluir o projeto, deverá ver as seguintes mensagens dependendo da entrada: | Card Number | Message | | ------------------- | -------- | | 453914889 | VALID! | | 4111-1111-1111-1111 | VALID! | | 1234 5678 9012 3456 | INVALID! |

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