From f8324b8a306176a3ae3a6841c06c14ebb040ef8f Mon Sep 17 00:00:00 2001 From: filifa Date: Thu, 11 Dec 2025 23:49:34 -0500 Subject: [PATCH] don't mod values when pushed --- main.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/main.js b/main.js index 46f23be..d06d18f 100644 --- a/main.js +++ b/main.js @@ -70,21 +70,29 @@ function compute(queue, modulus) { const stack = []; for (const token of queue) { if (typeof token === "bigint") { - stack.push(token % modulus); + stack.push(token); } else if (token === "+") { - const [a, b] = binaryOpPop(stack); + let [a, b] = binaryOpPop(stack); + a %= modulus; + b %= modulus; const c = (a + b) % modulus; stack.push(c); } else if (token === "-") { - const [a, b] = binaryOpPop(stack); + let [a, b] = binaryOpPop(stack); + a %= modulus; + b %= modulus; const c = (a - b) % modulus; stack.push(c); } else if (token === "*") { - const [a, b] = binaryOpPop(stack); + let [a, b] = binaryOpPop(stack); + a %= modulus; + b %= modulus; const c = (a * b) % modulus; stack.push(c); } else if (token === "/") { - const [a, b] = binaryOpPop(stack); + let [a, b] = binaryOpPop(stack); + a %= modulus; + b %= modulus; const binv = modinv(b, modulus); const c = (a * binv) % modulus; stack.push(c);