Ao fazer cálculo mental, pode-se fazer:
- Dado um número inteiro k, some todos os dígitos (na base 10) e, se o resultado for múltiplo de 3, k será múltiplo de 3.
Você conhece algum algoritmo funcionando de maneira semelhante, mas operando com dígitos de números binários (bits)?
No começo, eu estava pensando em usar as funções prontas da minha linguagem convertendo número inteiro para ascii para realizar a conversão da base 2 para a base 10 e depois aplicar o truque de cálculo mental. Mas é claro que eu também poderia codificar a conversão de base 2 para 10. Ainda não o fiz, mas vou tentar.
Então eu pensei na divisão euclidiana na base 2 ...
No entanto, gostaria de saber se existem outros meios, algoritmos.