Olá.. tava fuçando na net sobre cpf..
e achei o algoritmo.. x]
pra quem não sabe.. nda mais é do que a "fórmula"
para criação de um cpf válidu x]
é bastante útil pra quem quizer criar um gerador por exemplo
ou senão um validador..
eu fiz o meu gerador em javascript e html x]
se kizerem tentar.. eh bem interessante...
mas vamos lá..
Como fazer um CPF:
*Um cpf possui 11 algarismos.. separados da seguinte forma: xxx.xxx.xxx-xx
*Os 9 primeiros algarismos separados em trio, podem ser qualquer combinação de numeros, desde que não se repita um único algarismo as 9 vezes..
*Os 2 ultimos numeros tem uma ligação com os 9 primeiros.. são eles quem ditam se o cpf é valido ou não..
Mãos Á obras..
Usarei como exemplo... o cpf 222.333.666 que precisará dos dois ultimos digitos pra se validar..
como obtê-los
Multiplica-se kda digito do cpf, por os numeros decrescendo de 10 até 2.. como na figura abaixo:
(//http://img205.imageshack.us/img205/8620/fotinhaqk7.gif)
Multiplique os numeros de cima, pelo seu respectivo numero embaixo...
Some então o produto das multiplicações.. Você obterá apenas um numero..
Divida esse numero por 11.. fazendo uma divisão para não obter um numero decimal..
Exemplo:
20/11 = 1 e sobram 9
Feito essa divisão.. pegue a sobra.. no exemplo acima.. o 9... Kaso esse numero seja menor do que 2..
considere o primeiro digito verificador = 0... kaso seja maior.. subtraia ele de 11.. e então vc obterá o 1 digito verificador..
No nosso exemplo principal 222.333.666
Mutlplica-se pela tabela.. e obtem-se
20 - 18 - 16 - 21 - 18- 15 - 24 - 18 - 12
Fazendo a somatória.. obtem-se 162...
Divide-se para obter um resultado com sobra o 162 por 11..
Obtemos = 14.. e 8 de resto..
Pegamos o 8.. e o subtraimos de 11..
Logo 11 - 8 = 3..
Ou seja.. nosso primeiro digito verificador = 3..
Lembrando que caso o resultado da subtação fosse 1.. igualariamos a 0.. pois é menor que 2.. oque não é nosso caso
222.333.666-3
Agora.. repetimos baiscamente o processo.. só que agora.. temos 10 numeros.. então nossa tabela.. vai receber o 11 como primeiro membro =].
Fikando assim:
(//http://img53.imageshack.us/img53/3867/fotinha2dl9.gif)
Repetimos novamente o processo de multplicação.. somatória.. e divisão.. da mesma forma que fizemos para obter o primeiro digito...
Lembrando que caso o resto da divisão seja menor que 2.. igualamos diretamente o digito a 0..
Bom.. espero que tenham gostado.. By Quicky..
Muito bom cara !
Mas não curto muito ficar fazendo contas..
Por isso tenho um CPF Generator aqui !
Nhaa to ligado ;D
o kratos ja postou sobre isso aki senão me engano...mais vlw...