¿Cuál es el más pequeño múltiple positivo de 450 cuyos dígitos son todos ceros y unos?
Traté de adivinar y comprobar, pero los números creció con gran rapidez. Gracias de antemano!
¿Cuál es el más pequeño múltiple positivo de 450 cuyos dígitos son todos ceros y unos?
Traté de adivinar y comprobar, pero los números creció con gran rapidez. Gracias de antemano!
Podemos estar de acuerdo en que debe ser un múltiplo de 450? De lo contrario, los dos últimos dígitos será de 50.
¿Cuál es el más pequeño múltiple positivo de 900 tal que todos los dígitos son 0s o 1s?
Una regla de múltiplos de 9: la suma de los dígitos de un múltiplo de 9 es múltiplo de 9.
Esta regla va en ambos sentidos. Si la suma de los dígitos es un múltiplo de 9, el número es un múltiplo de 9.
Que hace 11111111100 nuestro ganador.
Escribir la respuesta N $450k$. Para asegurarse de que el lugar de las decenas es de uno o cero, se requieren $k$ a ser incluso. Por lo tanto, N es un múltiplo de 900. Debido a que cualquier múltiplo de 900 debe tener sus dos últimos dígitos cero, podemos ignorar las decenas y de las unidades de lugares y reducir la cuestión a:
¿Cuál es el menor múltiplo de 9, con todos los dígitos 0 o 1?
Un número es divisible por 9 si y sólo si la suma de sus dígitos es un múltiplo de 9. Pero estamos restringidos a unos y ceros, por lo que el menor múltiplo de 9, que pueden estar formados es de nueve: $111{,}111{,}111$.
Por lo tanto la respuesta a tu pregunta es este número con los dos ceros que se viró de nuevo en la final: $$11{,}111{,}111{,}100=450\times24{,}691{,}358$$ (He añadido la agrupación de comas para mayor claridad.)
Una breve secuencia de comandos de Python para resolver esto.
Entrada:
x=450
while 1:
# Convert number to text string
strX = str(x)
# Check if the number of 0's and 1's equal the total length of the string
if strX.count("0") + strX.count("1") == len(strX):
print "Found it:", strX
break
# Add another 450
x=x+450
Salida:
Found it: 11111111100
He aquí otra de fuerza bruta secuencia de comandos de Python, pero es bastante más eficiente que shiftypixlz.
target = 450
i = 1
while True:
n = int(format(i, 'b'))
if n % target == 0:
break
i += 1
print(n, n // target)
salida
11111111100 24691358
n = int(format(i, 'b'))
primer convierte el entero i
a una cadena de dígitos binarios, pero interpreta que la cadena como un entero decimal.
de un modo más. sea x el número requerido.
para que un número sea múltiplo de 450, debe ser múltiplo de 10. así 10.y =x ahora y debe ser múltiplo de 45. debe ser el primer múltiplo de 5. por lo que un número con sólo 1, o ser múltiplo de 5 si el último dígito es 0. de modo que y = 2. w/9...divisoria de 10 por 5 da 2 en el numerador.
2.w deben ser múltiples, de 9 de y debe contener sólo 1,0.
utilizando el hecho de que la suma de dígitos debe ser múltiplo de 9 para que un número sea múltiplo de 9,
2.w debe ser 111111111.
agregar dos ceros extra. 11111111100.
por lo tanto 11111111100 es el número requerido.
proceso largo, pero fácil de entender.
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.