\\ COLUNA
A beleza da matemática
Cláudio Possani, Flávio Ulhoa Coelho e Marcelo Finger, professores do Instituto de Matemática, Estatística e Ciência da Computação da USP



Esta coluna nasceu da iniciativa do atual diretor do Instituto de Matemática, Estatística e Ciência da Computação da USP, Roberto Marcondes, em conjunto com o superintendente de Comunicação Social, Luiz Alberto de Farias, e apoio da editora do Jornal da USP, Marcia Blasques, com o intuito de divulgar a matemática, em seu sentido mais amplo, a que todos nós estamos sujeitos no dia a dia. Nossa intenção é, com uma linguagem leve, mas não superficial, discutir matemática com a crença de que o conhecimento compartido é a base de uma sociedade justa.
Trataremos muitas vezes de assuntos que são produtos de pesquisa desenvolvidas em nosso instituto e, em outras, de questões que simplesmente estão em pauta em nosso entorno ou, mesmo, de assuntos matemáticos, digamos assim, atemporais. Sob a nossa coordenação, a coluna trará tanto textos nossos como também de convidados, mas sempre com o foco acima indicado.
Assuntos não faltam, assuntos não faltarão – e hoje trataremos da matemática por trás do Cadastro Nacional de Pessoas Jurídicas, o conhecido CNPJ. Boa leitura a todos!
Recentemente, a Receita Federal anunciou mudanças no CNPJ, pois o número de combinações possíveis estava se esgotando. O CNPJ tem o seguinte formato: são oito dígitos para identificar uma empresa, mais quatro, separados por uma barra, para identificar o código da filial da empresa (sendo 0001 utilizado pela matriz) e, por fim, dois dígitos do que chamamos de dígitos verificadores, que são calculados a partir dos demais dígitos. Por exemplo, o CNPJ da USP é 63.025.530/0001-04.
Como cada posição é, atualmente, ocupada por um dígito entre 0 e 9, para se identificar uma empresa, teríamos cem milhões de possibilidades, pois cada uma das oito posições iniciais do CNPJ pode ser ocupada por um dos dez dígitos disponíveis – portanto, no total dez elevado a oito, o que nos dá 100.000.000. Apesar de haver atualmente cerca de 26,5 milhões de CNPJs ativos no Brasil, o número de CNPJs já distribuídos ultrapassa os 68 milhões, pois, uma vez utilizado, o número não estará mais disponível, mesmo se for cancelado. Com a chamada “pejotização” da sociedade, o número de novos CNPJs ultrapassa os cinco milhões anuais e, obviamente, as possibilidades atuais se esgotariam em poucos anos.
Em princípio, poderíamos pensar em duas direções para resolver este problema:
(i) aumentar o número de posições que identificam uma empresa, por exemplo, aumentar de oito para nove, e manter os símbolos atuais, o que aumentaria o número de possibilidades para um bilhão; ou
(ii) manter a estrutura geral com oito posições identificando as empresas e aumentar a quantidade de símbolos em cada posição.
A Receita Federal preferiu a segunda opção, a de aumentar o número de símbolos possíveis em cada uma das 12 posições iniciais do CNPJ de dez para 36, acrescentando as 26 letras do alfabeto aos dez dígitos numéricos. Isto é, ao invés de um sistema puramente numérico, teremos um alfanumérico (como as placas de nossos carros que misturam números e letras), mas sem mexer na estrutura de 14 posições que existe atualmente.
Com isso, cada uma das oito posições iniciais seria ocupada por uma das 36 possibilidades (dez números mais 26 letras) e, isso, nos dá 2.821.109.907.456 combinações possíveis – quase três trilhões e cerca de 28 mil vezes mais do que as combinações atualmente existentes. É muito, certamente, mas esse aumento ajudará não só na questão de esgotamento de possibilidades, mas também na prevenção de algumas fraudes, pois ficaria mais difícil saber se alguma combinação aleatória é válida ou não.
Não é difícil se convencer de que o novo sistema trará um número de possibilidades mais do que adequado às futuras gerações. Só para se ter uma ideia, se o número de CNPJs distribuídos anualmente se mantiver no mesmo nível de agora, seriam necessários 564 mil anos para esgotarmos todas essas novas possibilidades.
Mesmo se pensarmos em algumas restrições, este novo sistema se mostra bem adequado. Por exemplo, se a Receita quiser, em um primeiro momento, utilizar as letras em apenas uma posição, o número de novas combinações seria suficiente para ao menos mais 50 anos Se quiser considerar letras em apenas duas posições, 200 anos não seriam suficientes para esgotá-las, se a demanda atual se mantivesse. Nada a se preocupar, portanto, no médio prazo.
Mencionamos acima que as duas últimas posições do CNPJ são utilizadas pelo que chamamos de dígitos verificadores (DV). Isso é bem comum quando se trata de números que precisam ser repassados de forma extremamente confiável. Nosso CPF também os tem, assim como os códigos de barras. Vamos tentar entender o porquê.
Voltemos ao CNPJ da USP. Poderia acontecer de alguém, distraído, ao digitar tal número trocar os dois primeiros dígitos de posição e escrever 36.025.530/0001-04. Como é que o recipiente desse número, errado, poderia saber que ele não é válido se não tivéssemos o DV?
Há uma fórmula para calculá-lo a partir das 12 primeiras posições. Para o número correto, isto é, 63.025.530/0001, o cálculo da fórmula nos dá 04, mas para o valor 36.025.530/0001, o resultado seria 32 que, ao compararmos com o número escrito, traria uma discrepância e saberíamos que haveria um erro. Outra possibilidade de erro pode vir quando alguém tenta transmitir um número verbalmente, ao telefone, por exemplo.
é o número de combinações possíveis com a nova fórmula do CNPJ
O cálculo do DV é feito em duas etapas, mas de forma bastante similar entre elas. Na primeira etapa, a cada um dos 12 dígitos antes do hífen, associamos um peso específico: a partir da esquerda eles serão 5,4,3,2,9,8,7,6,5,4,3,2, isto é, considerando o CNPJ começando em 63.025.530/0001, o primeiro dígito, 6 no caso, terá peso 5, o segundo, o número 3, terá peso 4, o terceiro, 0, peso 2 e assim por diante. Façamos as multiplicações destes números por seus respectivos pesos: 6×5 = 30, 3×4 = 12, 0x2 = 2… O próximo passo é somar todos estes resultados: 30 + 12 + 0 + 4 + 45 + 40 + 21 + 0 + 0 + 0 + 0 + 2 = 154. O valor resultante, 154, será agora dividido por 11 e vamos olhar o resto desta divisão, no caso o número 0 (pois 154 = 11×14). A regra agora será: se o resto da divisão da soma por 11 for 0 ou 1, então escolhemos o valor 0. Se o resto for maior ou igual a 2, escolhemos o dígito resultante da subtração de 11 por este resto. No caso, como o resto foi 0, este será o primeiro dígito de nosso DV.
O procedimento é repetido para o segundo dígito do DV, mas agora acrescentando-se o primeiro dígito conseguido. Teremos assim 13 dígitos (63.025.530/0001-0) e repetiremos o processo com os pesos (a partir da esquerda) 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2. A soma dos produtos dos dígitos pelos respectivos pesos será, nesta etapa, igual a 139 que, dividido por 11, resulta no resto 7. Pela regra descrita acima, o segundo dígito será 11-7 = 4. É assim que conseguimos o DV do CNPJ da USP: 04. É, digamos assim, a assinatura deste registro.
Observe que a utilização dos pesos é muito importante, pois, se tivéssemos somado simplesmente os dígitos e dividíssemos por 11, tanto 63.025.530/0001 quanto 36.025.530/0001 resultam nos mesmos DVs e não conseguiríamos distinguir o certo do errado. Na realidade, a maneira como fazemos este cálculo permite-nos identificar a grande maioria de erros comuns na transmissão de CNPJs.
Para os novos CNPJs, isto é, para os que irão usar 36 símbolos, o procedimento para se chegar ao DV é o mesmo; apenas que, para funcionar, precisamos associar um número a cada letra. Isso é usado a partir de uma tabela de conversão chamada ASCII. O resto funciona igual.
________________(As opiniões expressas nos artigos publicados no Jornal da USP são de inteira responsabilidade de seus autores e não refletem opiniões do veículo nem posições institucionais da Universidade de São Paulo. Acesse aqui nossos parâmetros editoriais para artigos de opinião.)




