From 6841f2493215dd3f4089bff0d09b0d4748a7818c Mon Sep 17 00:00:00 2001 From: danielyxie Date: Sun, 19 May 2019 13:56:49 -0700 Subject: [PATCH] Optimized Largest Prime factor coding contract solver. --- src/Hacknet/GetMaxNumberUpgradeFns.js | 4 ++++ src/data/codingcontracttypes.ts | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 src/Hacknet/GetMaxNumberUpgradeFns.js diff --git a/src/Hacknet/GetMaxNumberUpgradeFns.js b/src/Hacknet/GetMaxNumberUpgradeFns.js new file mode 100644 index 000000000..093ee2baa --- /dev/null +++ b/src/Hacknet/GetMaxNumberUpgradeFns.js @@ -0,0 +1,4 @@ +/** + * Utility functions for calculating the maximum number of Hacknet upgrades the player + * can purchase for a Node with his/her current money + */ diff --git a/src/data/codingcontracttypes.ts b/src/data/codingcontracttypes.ts index b05fcce00..f3d533ac9 100644 --- a/src/data/codingcontracttypes.ts +++ b/src/data/codingcontracttypes.ts @@ -65,14 +65,14 @@ export const codingContractTypesMetadata: ICodingContractTypeMetadata[] = [ solver: (data: number, ans: string) => { let fac: number = 2; let n: number = data; - while (Math.sqrt(n) > fac-1) { + while (n > ((fac-1) * (fac-1))) { while (n % fac === 0) { n = Math.round(n / fac); } ++fac; } - return (n===1?(fac-1):n) === parseInt(ans, 10); + return (n===1 ? (fac-1) : n) === parseInt(ans, 10); }, }, {