O que é o CPF e Por Que Tem uma Fórmula?
O Cadastro de Pessoas Físicas (CPF) é um documento fundamental no Brasil, criado pela Receita Federal para identificar contribuintes. Mas você sabia que por trás de cada número de CPF existe uma fórmula matemática complexa que garante sua validade?
A fórmula do CPF foi desenvolvida para prevenir erros de digitação e dificultar a criação de números falsos. Através de dois dígitos verificadores, o sistema consegue detectar mais de 99% dos erros comuns de entrada de dados.
Estrutura do CPF: Entendendo os 11 Dígitos
A Fórmula Matemática do CPF
Cálculo do Primeiro Dígito Verificador
- Multiplique cada um dos 9 primeiros dígitos pela sequência decrescente de 10 a 2:
- Divida o resultado por 11 e pegue o resto: 210 ÷ 11 = 19, resto 1
- Se o resto for menor que 2, o dígito é 0. Senão, o dígito é 11 - resto: 11 - 1 = 10
- Como o resultado é 10 (dois dígitos), o primeiro dígito verificador é 0
Cálculo do Segundo Dígito Verificador
- Use os 9 dígitos originais + o primeiro dígito verificador:
- Divida por 11: 255 ÷ 11 = 23, resto 2
- Como o resto é ≥ 2: 11 - 2 = 9
- O segundo dígito verificador é 9
Implementação em Código
JavaScript
function validarCPF(cpf) {
// Remove pontos e traços
cpf = cpf.replace(/[^\d]/g, '');
// Verifica se tem 11 dígitos
if (cpf.length !== 11) return false;
// Verifica se todos os dígitos são iguais
if (/^(\d)\1{10}$/.test(cpf)) return false;
// Calcula o primeiro dígito verificador
let soma = 0;
for (let i = 0; i < 9; i++) {
soma += parseInt(cpf[i]) * (10 - i);
}
let resto = soma % 11;
let digito1 = resto < 2 ? 0 : 11 - resto;
// Verifica o primeiro dígito
if (parseInt(cpf[9]) !== digito1) return false;
// Calcula o segundo dígito verificador
soma = 0;
for (let i = 0; i < 10; i++) {
soma += parseInt(cpf[i]) * (11 - i);
}
resto = soma % 11;
let digito2 = resto < 2 ? 0 : 11 - resto;
// Verifica o segundo dígito
return parseInt(cpf[10]) === digito2;
}
PHP
function validarCPF($cpf) {
// Remove caracteres não numéricos
$cpf = preg_replace('/[^0-9]/', '', $cpf);
// Verifica se tem 11 dígitos
if (strlen($cpf) != 11) return false;
// Verifica se todos os dígitos são iguais
if (preg_match('/(\d)\1{10}/', $cpf)) return false;
// Calcula o primeiro dígito verificador
$soma = 0;
for ($i = 0; $i < 9; $i++) {
$soma += intval($cpf[$i]) * (10 - $i);
}
$resto = $soma % 11;
$digito1 = $resto < 2 ? 0 : 11 - $resto;
// Verifica o primeiro dígito
if (intval($cpf[9]) != $digito1) return false;
// Calcula o segundo dígito verificador
$soma = 0;
for ($i = 0; $i < 10; $i++) {
$soma += intval($cpf[$i]) * (11 - $i);
}
$resto = $soma % 11;
$digito2 = $resto < 2 ? 0 : 11 - $resto;
// Verifica o segundo dígito
return intval($cpf[10]) == $digito2;
}
Calculadora Interativa da Fórmula do CPF
Teste a Fórmula do CPF
Digite os 9 primeiros dígitos e veja como os dígitos verificadores são calculados
Perguntas Frequentes sobre a Fórmula do CPF
Por que o CPF tem dígitos verificadores?
Os dígitos verificadores servem para detectar erros de digitação e prevenir a criação de números falsos. Eles funcionam como uma "impressão digital" matemática que valida a autenticidade do número.
Quantos CPFs válidos existem?
Teoricamente, existem cerca de 900 milhões de combinações válidas de CPF (de 000.000.001-91 a 999.999.999-XX), mas nem todas são utilizadas pela Receita Federal.
É possível gerar CPFs válidos aleatoriamente?
Sim, é possível gerar números matematicamente válidos usando a fórmula. No entanto, isso não significa que sejam CPFs reais ou ativos na Receita Federal. Números gerados devem ser usados apenas para testes.
Por que alguns números como 111.111.111-11 são inválidos?
A Receita Federal considera inválidos os CPFs onde todos os dígitos são iguais, mesmo que matematicamente possam passar na fórmula de validação. Isso é uma regra adicional de segurança.
Ferramentas Relacionadas
Conclusão
A fórmula do CPF é um exemplo brilhante de como a matemática pode ser aplicada para resolver problemas práticos de identificação e validação. Compreender seu funcionamento não apenas satisfaz a curiosidade, mas também é essencial para desenvolvedores que trabalham com sistemas brasileiros.
Lembre-se sempre de usar números de CPF gerados apenas para desenvolvimento e testes, respeitando as leis e regulamentações da Receita Federal. Para projetos reais, sempre utilize CPFs fornecidos pelos próprios usuários ou sistemas oficiais.