Ayer, te propuse un problema: encontrar los números que, sumados a la suma de sus dígitos, diesen como resultado el año actual. Puedes ir al post en cuestión AQUÍ. Ahora bien, ¿es 2023 un año especial o se podría resolver el mismo problema para cualquier otro año?
Si piensas que cualquier año cumple esta propiedad, demuéstralo. Si piensas que no, escribe un contraejemplo, un año para el cual no exista ningún número que, sumado a la suma de sus dígitos, dé como resultado el año.
SOLUCIÓN: esta propiedad solamente la cumplen algunos años, la mayoría de ellos. Pero hay unos pocos que no lo hacen: en los últimos años, por ejemplo, 2007 y 2022. Veamos por qué 2022 no cumple la propiedad: asumamos que sí que lo hace y lleguemos a una contradicción. Seguiremos un razonamiento bastante análogo al de la solución de ayer, por lo que iré algo rápido.
Sea abcd el número de cuatro cifras que debemos encontrar. Debemos resolver la ecuación 2022 = 1000a + 100b + 10c + d + a + b + c + d. En principio, a podría ser tanto 1 como 2. Probemos con cada una de las opciones, a ver hasta dónde llegamos.
Cuando a = 1, nuestra ecuación se reduce a 1021 = 100b + 10c + d + b + c + d. Para que la suma sea mayor que 1000, b = 9. La ecuación, más simplificada, queda 112 = 10c + d + c + d. Por un argumento similar, es necesario que c = 9 y la ecuación queda 13 = 2d. Obviamente, en este caso no hay solución, porque todos los dígitos tienen que ser números enteros entre 0 y 9.
Probemos ahora el otro caso, cuando a = 2. La ecuación es ahora 20 = 100b + 10c + d + b + c + d. Claramente, b = 0, por lo que 20 = 10c + d + c + d. Con c = 2, nos pasaríamos, y con c = 0 no llegaríamos, por lo que c = 1. Así, 9 = 2d. De nuevo, no existe solución entera.
En definitiva, no hay ningún número que, sumado a la suma de sus cifras, dé como resultado 2022.
Para encontrar más ejemplos, he escrito un pequeño programa en JavaScript. Por limitarlo un poco, he escogido años cercanos a la actualidad, entre 1900 y 2100, pero puedes elegir los extremos que desees.
var currentNumber, currentTest, isValid;
for(currentNumber = 1900; currentNumber < 2100; currentNumber++){
isValid = false;
for(currentTest = 1; currentTest <= currentNumber; currentTest++){
if(currentNumber == currentTest + sumDigits(currentTest)){
isValid = true;
break;
}
}
if(!isValid){
console.log("El número " + currentNumber + " no cumple la propiedad.");
}
}
function sumDigits(num){
var sum = 0;
while (num) {
sum += num % 10;
num = Math.floor(num / 10);
}
return sum;
}
Entre 1900 y 2100, el programa da como resultado los años 1906, 1917, 1919, 1930, 1941, 1952, 1963, 1974, 1985, 1996, 2007, 2022, 2033, 2044, 2055, 2066, 2077, 2088 y 2099.
No hay comentarios:
Publicar un comentario