JSFiddle - React, Tailwind, and code Playground

by Andrew Maxwell

JavaScript

'use strict';
console.clear();

const input = '1,0,0,3,1,1,2,3,1,3,4,3,1,5,0,3,2,10,1,19,2,19,6,23,2,13,23,27,1,9,27,31,2,31,9,35,1,6,35,39,2,10,39,43,1,5,43,47,1,5,47,51,2,51,6,55,2,10,55,59,1,59,9,63,2,13,63,67,1,10,67,71,1,71,5,75,1,75,6,79,1,10,79,83,1,5,83,87,1,5,87,91,2,91,6,95,2,6,95,99,2,10,99,103,1,103,5,107,1,2,107,111,1,6,111,0,99,2,14,0,0'.split(',').map(Number);

const compute = input => {
  for (let i = 0; i < input.length; i += 4) {
  	const [op, a, b, c] = input.slice(i, i + 4);
    if (op === 1) input[c] = input[a] + input[b];
    else if (op === 2) input[c] = input[a] * input[b];
    else if (op === 99) return input;
    else throw new Error(`Bad op: ${op}, ${a}, ${b}, ${c}`);
  }
}

for (let i = 0; i < 100; i++) {
	for (let j = 0; j < 100; j++) {
  	const n = input.slice();
    n[1] = i;
    n[2] = j;
  	if (compute(n)[0] === 19690720) console.log(i, j, 100 * i + j);
  }
}