O que a calculadora mostra
O CPF tem 11 dígitos, mas só nove deles carregam informação. Os dois últimos, os dígitos verificadores, são calculados a partir dos nove primeiros e servem para detectar erros de digitação. A calculadora desta página faz esse cálculo à vista: você digita a base e ela monta, para cada dígito verificador, uma tabela com três linhas.
- Dígito: cada número da base, na ordem.
- Peso: o multiplicador aplicado àquela posição.
- Produto: dígito vezes peso.
Abaixo de cada tabela aparecem a soma dos produtos, o resto da divisão por 11 e a regra aplicada para chegar ao dígito. No fim, a ferramenta mostra o CPF completo, já formatado. O campo vem preenchido com 529982247, base do CPF de exemplo 529.982.247-25, e qualquer alteração recalcula tudo na hora.
A calculadora é útil para conferir uma implementação própria: se o seu código diverge do resultado aqui, a tabela mostra em qual produto ou soma a diferença começa. Se quiser só um CPF válido pronto, o gerador é mais direto; se quiser conferir um número completo, use o validador.
Os pesos de 10 a 2 e de 11 a 2
Cada dígito verificador usa uma sequência de pesos decrescente que termina em 2.
Primeiro dígito. Os nove dígitos da base são multiplicados pelos pesos 10, 9, 8, 7, 6, 5, 4, 3 e 2. Para a base 529982247:
Dígito: 5 2 9 9 8 2 2 4 7
Peso: 10 9 8 7 6 5 4 3 2
Produto: 50 18 72 63 48 10 8 12 14 -> soma 295
Segundo dígito. O primeiro dígito verificador entra no fim da base, que passa a ter dez dígitos, e os pesos vão de 11 a 2:
Dígito: 5 2 9 9 8 2 2 4 7 2
Peso: 11 10 9 8 7 6 5 4 3 2
Produto: 55 20 81 72 56 12 10 16 21 4 -> soma 347
A diferença de um peso entre as duas etapas tem uma consequência prática: o segundo dígito depende do primeiro. Se o primeiro estiver errado, o segundo calculado a partir dele também estará, e por isso a validação confere os dois em ordem.
Os pesos decrescentes fazem com que cada posição contribua de forma diferente para a soma. Assim, a troca de dois dígitos vizinhos, um erro comum de digitação, costuma alterar o resultado e ser detectada.
Resto 0 ou 1: a regra que confunde
Com a soma em mãos, calcula-se o resto da divisão por 11. Na maior parte dos casos, o dígito verificador é 11 menos o resto:
- 295 dividido por 11 dá 26 com resto 9, e 11 − 9 = 2;
- 347 dividido por 11 dá 31 com resto 6, e 11 − 6 = 5.
O problema aparece quando o resto é 0 ou 1. A conta daria 11 ou 10, números de dois algarismos que não cabem na posição de um dígito. A regra do CPF resolve isso de forma direta: se o resto for menor que 2, o dígito é 0.
Esquecer essa regra é um dos erros mais comuns em implementações escritas do zero. O código parece funcionar nos primeiros testes, porque a maioria das bases cai nos restos de 2 a 10, e falha só quando aparece um número cujo resto é 0 ou 1. Para testar esse caso, experimente na calculadora a base 000000000: a soma é 0, o resto é 0 e os dois dígitos verificadores são 0. O resultado, 000.000.000-00, ilustra outra regra, a das sequências repetidas, que são rejeitadas pelos validadores mesmo com a conta certa. O guia de erros comuns ao validar CPF reúne essa e outras armadilhas.
Variação (soma × 10) mod 11
Muitos exemplos de código encontrados na internet usam uma fórmula diferente: multiplicam a soma por 10, tiram o resto da divisão por 11 e, se o resultado for 10, trocam por 0.
// Forma 1: 11 menos o resto
const forma1 = (soma) => {
const resto = soma % 11;
return resto < 2 ? 0 : 11 - resto;
};
// Forma 2: (soma × 10) mod 11
const forma2 = (soma) => {
const r = (soma * 10) % 11;
return r === 10 ? 0 : r;
};
forma1(295); // 2
forma2(295); // 2950 % 11 = 2
forma1(347); // 5
forma2(347); // 3470 % 11 = 5As duas formas dão sempre o mesmo resultado. O motivo é aritmético: como 10 deixa resto 10 na divisão por 11, que equivale a −1, multiplicar a soma por 10 e tirar o resto é o mesmo que calcular 11 menos o resto da soma. Quando o resto da soma é 0, a forma 2 dá 0; quando é 1, a forma 2 dá 10, que vira 0. Os dois casos especiais coincidem com a regra do resto menor que 2.
Escolha a forma que for mais clara para quem vai ler o código. A primeira segue literalmente a descrição do algoritmo; a segunda economiza um passo, mas pede um comentário explicando o 10. O guia do algoritmo de validação pelo módulo 11 traz a dedução completa.
Usar o cálculo em provas e entrevistas
Implementar a validação de CPF é um exercício frequente em disciplinas de programação, testes técnicos e entrevistas para vagas no Brasil. O problema é pequeno, mas cobre laços, conversão de caracteres em números, aritmética modular e tratamento de casos de borda. Alguns pontos costumam separar uma resposta completa de uma parcial:
- Limpar a entrada antes de tudo. Remover pontos, hífen e espaços, e recusar qualquer outro caractere.
- Conferir o tamanho. Exatamente 11 dígitos depois da limpeza.
- Rejeitar sequências repetidas. 111.111.111-11 passa no cálculo e deve ser recusado.
- Aplicar a regra do resto 0 ou 1 nos dois dígitos.
- Tratar o CPF como texto, nunca como número inteiro, para não perder zeros à esquerda.
Vale também saber explicar o que a validação não faz: ela não diz se o CPF existe ou pertence a alguém, só se os dígitos são coerentes entre si. Usar a calculadora com algumas bases diferentes, incluindo uma que termine em resto 0 ou 1, ajuda a fixar o raciocínio antes de escrever o código. Implementações de referência estão nas páginas de JavaScript, Python, Java e C#. Para validar o formato sem calcular dígitos, como em um campo de formulário, veja o guia de regex para CPF.