¿Hay alguna forma de escribir "mod 31" sin operadores de módulo / división?
Obtener el módulo de un número se puede hacer fácilmente sin el operador del módulo o las divisiones, si su operando es una potencia de 2. En ese caso, la siguiente fórmula es válida:x % y = (x & (y − 1))
. Esto es a menudo mucho rendimiento en muchas arquitecturas. ¿Se puede hacer lo mismo pormod 31
?
int mod31(int a){ return a % 31; };