CPF (Algorimito) duvida sobre o cpf 000.000.000-00, ele é valido ? [RESOLVIDO]

1 resposta
L

bom, hoje cedo tava vendo o algoritimo para testar CPF... ele é bem simples, vou dar um resumida...

vc pega os 9 primeiros digitos do CPF, ou seja, esquece os 2 digitos verificadores....

para checar o 1° digito, vc multiplica por 10 o 1° digito, por 9 o 2° e assim por diante
ate chegar no 9° digito que multiplica por 2....
Soma o resultado de todas essas multiplicações. ai ve o resto da divisão dessa soma por 11
se o resto for 0 ou 1 ... então o 1° digito será 0, caso contraio faz 11-resto e esse será o 1° digito

1 2 3 4 5 6 7 8 9
10 9 8 7 6 5 4 3 2

para o 2° digito é igual, so que começa do 11.... 11 x 1° digito ... 10 x 2° digito.... 3 x 9° digito...
faz o mesmo com o resto e acha o segundo digito...

1 2 3 4 5 6 7 8 9
11 10 9 8 7 6 5 4 3

bom com esses 2 digitos só checar se bate com os digitos verificadores informados pelo usuario....

o problema ta sendo bem basico.... quando o CPF é [CPF removido] a conta bate tb... e da valido...

seria esse CPF valido ????

segue código java para algoritimo

//String de CPF valida com 11 digitos
	public static String digitValidator(String cpfString) {
		long firstDigitSum = 0; 
		long secondDigitSum = 0;
		for (int i = 0; i<10; i++) {
			String s = cpfString.substring(i, i+1);
			firstDigitSum += (10-i) * Integer.parseInt(s);
			secondDigitSum += (11-i) * Integer.parseInt(s);
		}
		//firstDigitSum%11 é o mesmo que "Resto da divisão de firstDigitSum por 11"
		long digit1 = ((firstDigitSum % 11) > 1) ? 11 - (firstDigitSum % 11) : 0;
		long digit2 = ((secondDigitSum % 11) > 1) ? 11- (secondDigitSum % 11) : 0;
		
		return "" + digit1 + digit2;
	}
esse código retorna os 2 digitos que verificam o CPF enviado

.... quando envio o cpf [CPF removido] ele sai como valido =[ mais queria saber c na real eu concidero isso como verade

1 Resposta

L

Pronto achei uma resposta ^^

http://www.receita.fazenda.gov.br/publico/Legislacao/atos/AtosConjuntos/AnexoIADEConjuntoCoratCotec0012002.doc

Não serão considerados válidos os CPF abaixo:
[CPF removido], [CPF removido], [CPF removido], [CPF removido], [CPF removido],
[CPF removido], [CPF removido], [CPF removido], [CPF removido], [CPF removido].

Criado 7 de janeiro de 2009
Ultima resposta 7 de jan. de 2009
Respostas 1
Participantes 1