hay un algoritmo rápido, similar a la potencia de 2, que se puede usar con 3, es decir, n% 3. Tal vez algo que utiliza el hecho de que si la suma de dígitos es divisible por tres, entonces el número también es divisible.¿Algoritmo rápido de módulo 3 o división?
Esto lleva a la siguiente pregunta. ¿Cuál es la forma más rápida de agregar dígitos en un número? Es decir. 37 -> 3 7 -> 10 Busco algo que no tiene condicionales como aquellos que tienden a inhibir la vectorización
gracias
Agregar dígitos no funcionará en este caso porque tendría que convertir el número primero a un número decimal que demora _mucho_ más que solo dividir. –
¿Qué estás tratando de lograr? A menos que sea una curiosidad teórica, dudo que este problema específico que tiene sea el cuello de botella de una aplicación del mundo real ... –
es práctico y teórico. la pregunta surge al tratar de distribuir múltiples bucles anidados sobre centros cartesianos entre hilos (específicamente Cuda, pero no es importante). Ya resolví el problema de otra manera, pero aún me gustaría saber si hay alguna manera. Este es un verdadero cuello de botella ya que la división y el módulo enteros son mucho más caros que las operaciones reales de coma flotante que intento hacer en paralelo. – Anycorn