4 votos

Hallar el mayor entero divisor dentro del intervalo

¿Existe alguna forma clara de encontrar el mayor número entero que divide completamente a otro número entero, dentro de un intervalo? Por ejemplo, me gustaría encontrar el mayor número entero menor que 1131 que divide 3500 completamente.

Hasta ahora lo he intentado descomponiendo 3500 en sus componentes principales y adivinando, llegando a 875, pero ¿hay alguna forma más estructurada?

EDIT: Supongo que el problema es algo equivalente a obtener todos los enteros divisores, y luego simplemente elegir el más grande dentro de mi rango?

0 votos

Parece que ya lo sabes, pero saber $3500=2^2\cdot 5^3\cdot 7$ hay $3\cdot4\cdot 2=24$ divisores. En este caso, basta con hacer una lista de todos los divisores e intersecarlos con $[1,1131]$ y toma el máximo. No está garantizado que sea eficaz, pero al menos es riguroso.

2voto

Nikolai Prokoschenko Puntos 2507

Podrías buscar el menor número entero mayor que $\dfrac{3500}{1131}\approx 3.09$ que divide $3500$ exactamente

Esto es obviamente $4$ (no hay ningún número entero más pequeño que $3.09$ y $4$ divide $3500$ mientras se divide $100$ ) por lo que la respuesta a su pregunta original es $\dfrac{3500}{4}=875$

1voto

Mark Struzinski Puntos 11288

Hay un reducción aleatoria de SUBSET-SUM a este problema, y es NP-completo asumiendo una versión débil de la conjetura de Cramér. Así que no hay una solución general clara, pero por supuesto hay muchos casos especiales que se pueden determinar rápidamente (por ejemplo, si el múltiplo sospechoso es primo podemos probarlo en tiempo polinómico y saber que no hay divisor en el rango, o si el rango es lo suficientemente pequeño como para que la divisibilidad por cada miembro se pueda probar individualmente).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X