POTHIEDU Não Decore a Resposta. Entenda o Caminho

Critério De Divisibilidade Por 100

Critério De Divisibilidade Por 100

A divisão por 100 no dia a dia

Todo mundo que já precisou validar um número em planilha ou código já se deparou com a mesma pergunta: esse número é divisível por 100? A resposta rápida é olhar os dois últimos algarismos. Se forem zero, a coisa funciona. Se não forem, não funciona. O critério de divisibilidade por 100 é praticamente isso, mas o problema é que as pessoas costumam complicar onde não precisa. No trabalho com dados financeiros, por exemplo, eu lidei com uma base de transações onde cerca de trinta por cento dos registros vinham com casas decimais. O algoritmo que eu tinha escrito checa se o resto da divisão por 100 era igual a zero, mas números como 1500,00 geravam resultados diferentes dependendo da linguagem. Em Python, int(1500.00) % 100 retorna 0 como esperado. Já em JavaScript, 1500.00 % 100 às vezes dá algo como 0.00000000000002 por causa da precisão flutuante. A solução foi converter tudo para inteiro multiplicando por cem e dividindo por cem novamente, usando Math.floor(), antes de aplicar a verificação. Isso resolveu na hora e eliminou falsos negativos que estavam estragando relatórios inteiros.

Como usar o critério de divisibilidade por 100

O mecanismo é direto. Um número inteiro é divisível por 100 quando e somente quando os dois últimos dígitos dele são ambos zero. Isso equivale a dizer que n mod 100 == 0. Qualquer outro último par termina diferente de 00 e já gera resto diferente de zero na divisão. Para entender por que isso existe, basta decompor 100. O número 100 é igual a 2² × 5². Para ser divisível por 100, um número precisa ser divisível por 4 e por 25 ao mesmo tempo. A condição para 4 exige que os dois últimos dígitos formem um número divisível por 4. A condição para 25 exige que os dois últimos dígitos formem um múltiplo de 25, ou seja, 00, 25, 50 ou 75. A interseção dessas duas exigências é apenas o par 00. Daí a regra. Vou dar um exemplo prático. Pegue o número 324700. Os dois últimos dígitos são 0 e 0. O critério de divisibilidade por 100 se aplica. Dividindo 324700 por 100, o quociente é 3247 e o resto é zero. Agora pegue 324750. Os dois últimos dígitos são 5 e 0, formando 50. Esse número não é divisível por 100, embora seja divisível por 25. A divisão dá resto 50. O erro comum é achar que se um número é divisível por 25 ele automaticamente é divisível por 100. Não é. Ele precisa terminar em 00.

Outro caso que aparece muito é o número 10000. Termina em 00, então é divisível por 100. O quociente é 100. Parece óbvio, mas quando se trabalha com validações automáticas em lote, números grandes como esse costumam passar despercebidos em logs porque o sistema trata apenas o resto e ignora o quociente. Se você precisa saber se um número é divisível por 100 e também quer o resultado da divisão, precisa fazer as duas operações separadamente.

Critério de Divisibilidade | PDF
Critério de Divisibilidade | PDF

Quando o critério falha ou cria confusão

O critério de divisibilidade por 100 é confiável para inteiros positivos. Ele não se aplica da mesma forma a números negativos sem cuidado. Em algumas linguagens, o operador módulo retorna valores negativos para divisores positivos quando o dividendo é negativo. O número -300 é divisível por 100 matematicamente, mas -300 % 100 pode retornar -0 ou 0 dependendo da implementação. Se o seu código compara strictamente com 0, isso costuma funcionar. Mas se alguém escrever uma verificação que considera apenas restos positivos, o número pode ser rejeitado indevidamente. Um problema mais frequente acontece com números decimais. O critério foi definido para inteiros. Se você tem 150,50 e quer saber se é divisível por 100, a pergunta já está mal formulada. A divisibilidade é um conceito que pertence aos inteiros. Na prática, quem trabalha com dados costuma lidar com valores monetários ou percentuais que têm duas casas decimais fixas. Nesse cenário, a solução é multiplicar por 100 para eliminar as casas decimais e depois aplicar o teste normal. Existe também a armadilha de confundir divisibilidade por 10 com divisibilidade por 100. Um número que termina em zero é divisível por 10. Não necessariamente por 100. 500 é divisível por 100. 150 só é divisível por 10. A diferença está no segundo dígito. Se ele também for zero, aí sim o número é divisível por 100.

Para validar rapidamente se um número grande, como 847293100, é divisível por 100, você não precisa fazer a divisão completa. Basta isolar os dois últimos dígitos. Eles são 0 e 0. Pronto. O número é divisível por 100. Fazer a operação inteira só perde tempo e aumenta a chance de erro de arredondamento em sistemas que usam ponto flutuante. Se o seu objetivo é apenas classificar números como divisíveis ou não por 100 em massa, o critério de divisibilidade por 100 resolve o problema na maior parte dos casos. Porém, se você precisa trabalhar com números não inteiros, frações ou valores reais gerados por cálculos anteriores, o teste puro por módulo pode enganar. Nesse, uma abordagem mais segura é trabalhar com aritmética de inteiros após escalar os valores, ou usar bibliotecas de precisão decimal quando disponíveis no ambiente que você está utilizando.