$87531 \cdot 9642 = 843973902$
Podría confirmar Respuesta de imakesmalltalk por un programa de JavaScript.
Instalar node.js , ejecutar node the-saved-script-name.js
y la última línea de la salida del programa debe ser el mayor producto posible.
El programa debería funcionar razonablemente rápido, necesita 3,936 segundos en mi PC.
/* Create all given permutations of an array
* @author Oriol <http://stackoverflow.com/users/1529630/oriol
* @link http://stackoverflow.com/a/11509565/603003
* @license CC BY-SA 3.0 with attribution required
*/
function permute(input) {
var permArr = [],
usedChars = [];
function main(){
var i, ch;
for (i = 0; i < input.length; i++) {
ch = input.splice(i, 1)[0];
usedChars.push(ch);
if (input.length == 0) {
permArr.push(usedChars.slice());
}
main();
input.splice(i, 0, ch);
usedChars.pop();
}
return permArr;
}
return main();
}
var numbers = [1,2,3,4,5,6,7,8,9];
var maxProduct = 0;
permute(numbers).forEach(function (permutation) {
for (var i=1; i<9; i++) {
var factor1 = parseInt(permutation.slice(0, i).join(""), 10);
var factor2 = parseInt(permutation.slice(i, permutation.length).join(""), 10);
var product = factor1 * factor2;
if (product > maxProduct) {
maxProduct = product;
console.log("New maxProduct: " + maxProduct + " (factor1: " + factor1 + ", factor2: " + factor2 + ")");
}
}
});
La salida:
...
la última línea sigue:
Nuevo maxProducto: 843973902 (factor1: 87531, factor2: 9642)