all done
This commit is contained in:
32
day23/input.txt
Normal file
32
day23/input.txt
Normal file
@ -0,0 +1,32 @@
|
||||
set b 540
|
||||
set c b
|
||||
jnz a 2
|
||||
jnz 1 5
|
||||
mul b 100
|
||||
sub b -100000
|
||||
set c b
|
||||
sub c -17000
|
||||
set f 1
|
||||
set d 2
|
||||
set e 2
|
||||
set g d
|
||||
mul g e
|
||||
sub g b
|
||||
jnz g 2
|
||||
set f 0
|
||||
sub e -1
|
||||
set g e
|
||||
sub g b
|
||||
jnz g -8
|
||||
sub d -1
|
||||
set g d
|
||||
sub g b
|
||||
jnz g -13
|
||||
jnz f 2
|
||||
sub h -1
|
||||
set g b
|
||||
sub g c
|
||||
jnz g 2
|
||||
jnz 1 3
|
||||
sub b -17
|
||||
jnz 1 -23
|
30
day23/part1.js
Normal file
30
day23/part1.js
Normal file
@ -0,0 +1,30 @@
|
||||
var pc = 0;
|
||||
var registers = {a: 0, b: 0, c: 0, d: 0, e: 0, f: 0, g: 0, h: 0};
|
||||
var instructions = require("fs").readFileSync("input.txt").toString().split("\n").filter((a)=>(a));
|
||||
var numMul = 0;
|
||||
while((pc >= 0) && (pc < instructions.length)){
|
||||
val = a => ((isNaN(parseInt(a))) ? (registers[a]) : (parseInt(a)));
|
||||
var instruction = instructions[pc];
|
||||
var parts = instruction.split(" ");
|
||||
var pcstart = pc;
|
||||
switch(parts[0]){
|
||||
case "set":
|
||||
registers[parts[1]] = val(parts[2]);
|
||||
break;
|
||||
case "sub":
|
||||
registers[parts[1]] -= val(parts[2]);
|
||||
break;
|
||||
case "mul":
|
||||
numMul++;
|
||||
registers[parts[1]] *= val(parts[2]);
|
||||
break;
|
||||
case "jnz":
|
||||
if(val(parts[1]) != 0){
|
||||
pc += (val(parts[2]) - 1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
pc++;
|
||||
}
|
||||
console.log(numMul);
|
||||
console.log(registers);
|
13
day23/part2.js
Normal file
13
day23/part2.js
Normal file
@ -0,0 +1,13 @@
|
||||
var num = 106700;
|
||||
var end = 123700;
|
||||
var numNotPrime = 0;
|
||||
while(num <= end){
|
||||
for(var i = 2; i <= Math.sqrt(num); i++){
|
||||
if(num%i == 0){
|
||||
i = num;
|
||||
numNotPrime++;
|
||||
}
|
||||
}
|
||||
num += 17;
|
||||
}
|
||||
console.log(numNotPrime);
|
Reference in New Issue
Block a user