Cria os dígitos verificadores para CPF
Publicado por Luis Eduardo Boiko Ferreira 22/03/2009 (última atualização em 16/02/2010)
[ Hits: 8.570 ]
Homepage: https://www.facebook.com/luiseduardo.boiko
Os CPFs possuem nove dígitos e dois dígitos verificadores. Os dígitos verificadores são calculados com base nos números do CPF, e servem, basicamente, para evitar falhas e erros de digitação, pois se o CPF digitado não bater com os dígitos verificadores, uma buzina irá tocar te dizendo que o CPF não é valido.
Tive que desenvolver este script rápido, portanto, certamente poderá ser reescrito de uma forma muito mais compacta do que a atual. Se alguém o modificar, poste as mudanças aqui.
#include <stdio.h> #include <stdlib.h> main() { int cpf, num1, num2, num3, num4, num5, num6, num7, num8, num9, ver1, ver2; int mun1,mun2,mun3,mun4,mun5,mun6,mun7,mun8,mun9,mun10,total,total2; printf("Digite os nove primeiros digitos do CPF:\n"); scanf("%d",&cpf); if((cpf/100000000)==0) { num1=0; num2=(cpf/10000000)-(num1*10); num3=((cpf/1000000)-(((num1*10)+num2)*10)); num4=((cpf/100000)-((((((num1*10)+num2)*10))+num3)*10)); num5=((cpf/10000)-((((((((((num1*10)+num2)*10))+num3)*10))+num4)*10))); num6=((cpf/1000)-((((((((((((num1*10)+num2)*10))+num3)*10))+num4)*10)))+num5)*10); num7=((cpf/100)-((((((((((((((num1*10)+num2)*10))+num3)*10))+num4)*10)))+num5)*10)+num6)*10); num8=((cpf/10)-((((((((((((((((num1*10)+num2)*10))+num3)*10))+num4)*10)))+num5)*10)+num6)*10)+num7)*10); num9=(cpf-((((((((((((((((((num1*10)+num2)*10))+num3)*10))+num4)*10)))+num5)*10)+num6)*10)+num7)*10)+num8)*10); } else num1=cpf/100000000; num2=(cpf/10000000)-(num1*10); num3=((cpf/1000000)-(((num1*10)+num2)*10)); num4=((cpf/100000)-((((((num1*10)+num2)*10))+num3)*10)); num5=((cpf/10000)-((((((((((num1*10)+num2)*10))+num3)*10))+num4)*10))); num6=((cpf/1000)-((((((((((((num1*10)+num2)*10))+num3)*10))+num4)*10)))+num5)*10); num7=((cpf/100)-((((((((((((((num1*10)+num2)*10))+num3)*10))+num4)*10)))+num5)*10)+num6)*10); num8=((cpf/10)-((((((((((((((((num1*10)+num2)*10))+num3)*10))+num4)*10)))+num5)*10)+num6)*10)+num7)*10); num9=(cpf-((((((((((((((((((num1*10)+num2)*10))+num3)*10))+num4)*10)))+num5)*10)+num6)*10)+num7)*10)+num8)*10); mun1=(num1*10); mun2=(num2*9); mun3=(num3*8); mun4=(num4*7); mun5=(num5*6); mun6=(num6*5); mun7=(num7*4); mun8=(num8*3); mun9=(num9*2); total=mun1+mun2+mun3+mun4+mun5+mun6+mun7+mun8+mun9; printf("Total da soma antes do calculo de mod eh %d \n\n", total); ver1=(total%11); printf("Apos o calculo de Mod o DV 1 vale:%d \n\n", ver1); if((ver1==0)||(ver1==1)) ver1=0; else ver1=(11-ver1); mun1=(num1*11); mun2=(num2*10); mun3=(num3*9); mun4=(num4*8); mun5=(num5*7); mun6=(num6*6); mun7=(num7*5); mun8=(num8*4); mun9=(num9*3); mun10=(ver1*2); total2=mun1+mun2+mun3+mun4+mun5+mun6+mun7+mun8+mun9+mun10; printf("Total da soma antes do calculo de mod eh %d \n\n", total2); ver2=(total2%11); printf("Apos o calculo de Mod o DV 2 vale:%d \n\n", ver2); if((ver2==0)||(ver2==1)) ver2=0; else ver2=(11-ver2); printf("O primeiro digito verificador do cpf em questão eh:%d \n O segundo eh: %d \n", ver1, ver2); }
Bhaskara - Cálculo de raízes de equações do segundo grau
Mostra valores da tabela ascii
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Programa duplicado no "Abrir com" e na barra de pesquisa do ... (1)
VMs e Interfaces de Rede desapareceram (13)
Como abrir o pycharm no linux [RESOLVIDO] (4)