Luhn

Luhn

Fácil

Instrucciones

Dado un número, determina si es válido o no según la fórmula de Luhn.

El algoritmo de Luhn es una fórmula de suma de verificación simple que se usa para validar diversos números de identificación, como los números de las tarjetas de crédito y los números de seguro social de Canadá.

La tarea consiste en comprobar si un string dado es válido.

Cómo validar un número

Los strings de longitud 1 o menos no son válidos. Se permiten espacios en los datos, pero debes eliminarlos antes de comprobar. Cualquier otro carácter que no sea un dígito no está permitido.

Ejemplo 1: número de tarjeta de crédito válido

4539 3195 0343 6467

El primer paso del algoritmo de Luhn consiste en duplicar cada segundo dígito, empezando por la derecha. Vamos a duplicar

4_3_ 3_9_ 0_4_ 6_6_

Si al duplicar el número se obtiene un número mayor que 9, resta 9 al producto. Estos son los resultados de nuestra duplicación:

8569 6195 0383 3437

Después, suma todos los dígitos:

8+5+6+9+6+1+9+5+0+3+8+3+3+4+3+7 = 80

Si la suma es divisible entre 10, el número es válido. ¡Este número es válido!

Ejemplo 2: número de tarjeta de crédito no válido

8273 1232 7352 0569

Duplica los segundos dígitos, empezando por la derecha

7253 2262 5312 0539

Suma los dígitos

7+2+5+3+2+2+6+2+5+3+1+2+0+5+3+9 = 57

57 no es divisible entre 10, así que este número no es válido.

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Nim Exercism

¿Todo listo para empezar Luhn?

Regístrate en Exercism para aprender y dominar Nim con 70 ejercicios y mentoría humana real, todo gratis.

¡Profundiza en Luhn!

Exploramos 8 versiones diferentes de Luhn, comenzando con una implementación de Ruby muy pulcra, explorando algunos enfoques imperativos y funcionales, y terminando con una versión en SQLite que a Erik y Jeremy les costó algo de trabajo descifrar.