Executando verificação de segurança...
43

[PITCH] A Matemática do CPF.

A Matemática está presente em várias coisas naturais para o nosso dia-a-dia.

Hoje eu vou explicar como funciona a geração e validação de um CPF.

Fórmula

Os primeiros oito dígitos, são os números base do CPF, que são definidos pela Receita Federal.

O nono dígito, define a Região Fiscal responsável pela inscrição.

O penúltimo,é o dígito verificador dos nove primeiros.

O último, é o dígito verificador dos noves anteriores a ele.

Simplificando

Os 8 primeiros números podem ser aleatórios (123.456.78x-xx ou 000.000.00x-xx), o que realmente importa são os próximos 3.

Nono Digito

1 – DF, GO, MS, MT e TO
2 – AC, AM, AP, PA, RO e RR
3 – CE, MA e PI
4 – AL, PB, PE, RN
5 – BA e SE
6 – MG
7 – ES e RJ
8 – SP
9 – PR e SC
0 – RS

Segundo essa tabela, o seu nono digito indica qual Região Fiscal é responsável por ele. (Faz o teste com o seu CPF. 😉)

Décimo Digito

Esse é o nosso primeiro verificador, e ele usa a seguinte fórmula:

Os nove primeiros números são ordenadamente multiplicados pela sequência 10, 9, 8, 7, 6, 5, 4, 3, 2 (o primeiro por 10, o segundo por 9, e assim sucessivamente))

Em seguida, você soma os resultados e calcula o resto da divisão dessa soma por 11.

Ex:

Imagine que a soma total foi 162.

162 % 11 = 8

O resto da divisão.

Se esse resto for 0 ou 1, então o digito deve ser 0.

Caso contrário, o digito é (11 - resto).

Ex:

11 - 8 = 3

O nosso décimo digito, seria 3.

Décimo Primeiro Digito

Para esse Digito, a fórmula funciona da mesma maneira, mas ele usa os 9 numeros antes dele.

Ou seja, agora o nosso primeiro digito verificador também entra nessa conta.

E com isso, mesmo com apenas uma caneta e um pedaço de papel, você já consegue gerar CPFs válidos manualmente.

Automatização

E para testar essa lógica e as fórmulas, eu fiz um gerador de CPF extremamente simples.

👉 https://cpf.social/ 👈

Aqui está o repositório:

👉 https://github.com/luannzin/cpf-social 👈

E aqui está o algoritmo de geração:

👉 https://github.com/luannzin/cpf-social/blob/main/app/helpers/generateCpf.ts 👈

O projeto é um MVP e Open Source, então qualquer ideia é extremamente bem-vinda.

Farei um post sobre o Algoritmo de Luhn, então fiquem preparados. 👑

Carregando publicação patrocinada...
2
1
1

Talvez quebrando o cpf em digitos individuais e adicionando tooltip ao passar o mouse. Ou mais simples só disponibilizar essa mesma imagem do post no site hehe

1
1
1
0
0
0
0
1
0
-1