hey! cuidado con los operadores
le estás diciendo "aplica or entre a y b, luego ver si ese resultado es menor que 0"
es decir si le das a=3 y b=10, el verá si 11 es menor que 0
lo que queres es
para evitar repetir todo el codigo usa 2 variables extras
menor y mayor
el maximo divisor no requiere ser un array, puede ser un entero...
el resto de optimización es matematica...
-revisar si el menor es divisor del mayor, en ese caso termina ahí
-el maximo divisor de un numero jamas será mayor a su mitad
-empezar por el numero mas alto (que es la mitad de el numero menor si es par)
etc...
Código (python) [Seleccionar]
if 0 > (a or b):
le estás diciendo "aplica or entre a y b, luego ver si ese resultado es menor que 0"
es decir si le das a=3 y b=10, el verá si 11 es menor que 0
lo que queres es
Código (python) [Seleccionar]
if 0 > a or 0 > b:
para evitar repetir todo el codigo usa 2 variables extras
menor y mayor
Código (python) [Seleccionar]
if a==b: print("nope...")
menor = a if a<b else b
mayor = a if a>b else b
el maximo divisor no requiere ser un array, puede ser un entero...
el resto de optimización es matematica...
-revisar si el menor es divisor del mayor, en ese caso termina ahí
-el maximo divisor de un numero jamas será mayor a su mitad
-empezar por el numero mas alto (que es la mitad de el numero menor si es par)
etc...