Prof. Doherty Andrade
www.metodosnumericos.com.br
- Introdução.
O CPF é o Cadastro de Pessoa Física. Ele é um documento feito pela Receita Federal e serve para identificar os contribuintes. O CPF é uma numeração com 11 dígitos, que só mudam por decisão judicial.
O documento é emitido pela Receita Federal
Quando você faz o seu CPF, recebe os números que serão os seus durante toda a vida. E são diferentes para cada pessoa.
A principal função é servir de identificação dos contribuintes no Imposto de Renda. Tanto que os filhos, a partir dos 12 anos, precisam ter o próprio CPF para ser incluído na declaração de imposto dos pais.
Mas o documento não serve só pra isso. Se você quiser prestar um concurso público, se matricular em uma universidade, vai precisar ter o seu. E se quiser abrir conta em banco, fazer compras ou pedir um cartão de crédito também!
2. Dígitos verificadores do CPF
O CPF é uma sequência numérica de 11 dígitos, sendo que os dois últimos são dígitos verificadores. Como esses dígitos verificadores são obtidos? O método de elaboração desses dígitos verificadores utiliza aritmética módulo 11. Vamos mostrar como gerar os dígitos verificadores $v_1$ e $v_2$.
Suponha que os dígitos de um CPF genérico seja dado por
$$n_{1}n_2\ldots n_8 n_9v_1v_2.$$
Como vamos precisar do primeiro dígito verificador $v_1$ para gerar o segundo,
vamos explicar primeiro como obtê-lo (o décimo dígito).
Para gerar o primeiro dígito verificador $v_1$, fazemos a seguinte conta:
$$N_1=1n_{1}+2n_2+\cdots +8n_8+9n_9. $$
Seja $v\equiv N_1\mod (11).$
$v$ só pode assumir os valores $0,1,2,3,4,5,6,7,8,9,10$.
Se $v=10$, então tomamos $v_1=0$. Caso contrário, $v_1=v$.
Tendo obtido o primeiro dígito verificador $v_1$, vamos determinar o segundo dígito verificador $v_2$. Para gerar o segundo dígito verificador $v_2$, procedemos de modo análogo, mas utilizando o dígito verificador $v_1$. Fazemos a seguinte conta:
$$N_2=0n_{1}+1n_2+\cdots +7n_2+8n_1 +9v_1. $$
Seja $v\equiv N_2\mod (11).$
Novamene, $v$ só pode assumir os valores $0,1,2,3,4,5,6,7,8,9,10$.
Se $v=10$, então tomamos $v_2=0$. Caso contrário, $v_2=v$.
3. Código Python
Clique aqui pra continuar lendo e ver o arquivo Python em Jupyter noteboo que verifica se um dado número de CPF é válido.