Hay 7 ladrones. Robaron diamantes del comerciante de diamantes y huyeron en la jungla. ¿Podemos escribir un código para imponer la respuesta?

Es uno más que el MCM de 2,3,4,5,6. Que es 60. Pero como 61 no satisface las condiciones, tomamos múltiplos y agregamos uno para encontrar esta respuesta. La respuesta es 301 diamantes .

Bueno, puede escribir un programa que solo descubra el MCM del número y luego ejecutar un ciclo para encontrar la respuesta (verifique si el LCM satisface las condiciones de la pregunta). No debería ser muy difícil.

EDITAR : Aquí hay un código improvisado en C ++;

int LCM, LCMconst, LPO, i, l;
cout << "LCM:";
cin >> LCMconst;
LCM = LCMconst;
int k = 100;
int j = 1;
int a, b, c, d, e, f, g, h;
para (i = 1; i <k; i ++)
{
LPO = LCM + 1;

a = LPO% 2; b = LPO% 3; c = LPO% 4; d = LPO% 5; e = LPO% 6; f = LPO% 7;

si (a == 1 && b == 1 && c == 1 && d == 1 && e == 1 && f == 0)
{
cout << "\ nLa respuesta es:" << LPO;
rotura;
}
más
cout << LPO << "no es la respuesta, verificando nuevamente. \ n";
LCM = LCMconst * i;
}

Si este código no es legible, puede ir aquí.

No necesitamos fuerza bruta. Podemos solucionarlo.

Necesitamos un número que sea uno más que un múltiplo de 2, 3, 4, 5 y 6 y que sea un múltiplo de 7.

Entonces, para empezar, ¿qué números son múltiplos de 2, 3, 4, 5 y 6? Bueno, obviamente 2 * 3 * 4 * 5 * 6 = 720 es, y también lo es cualquier múltiplo de 720. Sin embargo, hay más que eso. Cualquier número que sea múltiplo de 2 y 3 ya será múltiplo de 6 y cualquier número que sea múltiplo de 4 ya es múltiplo de 2. Por lo tanto, podemos deshacernos de 2 y 6, dejando 3 * 4 * 5 = 60. Por lo tanto, cualquier múltiplo de 60 es un múltiplo de 2, 3, 4, 5 y 6 (y no hay otros números, eso se deduce del Teorema fundamental de la aritmética si está interesado).

Por lo tanto, el número de diamantes es 60k + 1 para algún entero k. Pero también sabemos que es un múltiplo de 7, entonces, ¿podemos encontrar el k correcto?

Trabajemos el módulo 7 (es decir, trabajamos solo con los restos después de dividir entre 7). Queremos 60k + 1 = 0 (mod 7). 60 = 4 (mod 7), por lo que necesitamos 4k + 1 = 0 (mod 7). Ahora solo trabajamos con los posibles valores de k y vemos qué sucede.

4 * 0 + 1 = 1 = 1 (mod 7)
4 * 1 + 1 = 5 = 5 (mod 7)
4 * 2 + 1 = 9 = 2 (mod 7)
4 * 3 + 1 = 13 = 6 (mod 7)
4 * 4 + 1 = 17 = 3 (mod 7)
4 * 5 + 1 = 21 = 0 (mod 7)

¡Llegamos allí!

Entonces k = 5 funcionará. Eso significa 60 * 5 + 1 = 301 diamantes.

Ahora podemos verificar el intercambio (siempre es bueno verificar sus respuestas).

301 entre 2 es 150 cada uno con uno sobrante.
301 entre 3 es 100 cada uno con uno sobrante.
301 entre 4 es 75 cada uno con uno sobrante.
301 entre 5 es 60 cada uno con uno sobrante.
301 entre 6 es 50 cada uno con uno sobrante.
301 entre 7 es 43 cada uno exactamente.

¡Entonces lo hemos hecho!

301 es la respuesta más pequeña posible. Cualquier valor de k de la forma 7n + 5 también funcionará. Por ejemplo, k = 12, entonces 721 diamantes, o k = 19, dando 1,141 diamantes.

De hecho, hay INFINITAMENTE MUCHAS soluciones: n es una solución siempre que n = 60 (7b-2) + 1, donde b es cualquier número entero tal que b> 0. Esto se puede probar usando aritmética modular y álgebra básica. Por lo tanto, las soluciones son 301 (para b = 1), 721 (para b = 2), 1141 (para b = 3), etc.
301 es la respuesta más pequeña, pero no la única respuesta … no por mucho. No sin ninguna restricción conocida sobre cuántos diamantes estaban disponibles o cuántos diamantes podían llevar los ladrones.

301