{"ScriptPreparationCode":"var fromNum = 2,\r\n toNum = 1000000;\r\nfunction isPrime(n) {\r\n for (var i = 2; i*i \u003C= n; i\u002B\u002B) {\r\n if ((n/i)%1 == 0) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction primeGaps(start, end) {\r\n if (start \u003C 1) {throw \u0027\u0027}\r\n result = {};\r\n var currentPrime = null;\r\n var primeGap = null;\r\n for (var i = start; i \u003C= end; i\u002B\u002B) {\r\n if (isPrime(i)) {\r\n if (currentPrime !== null) {\r\n primeGap = i - currentPrime;\r\n if (!result.hasOwnProperty(primeGap)) {\r\n result[primeGap] = currentPrime;\r\n }\r\n }\r\n currentPrime = i;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction primeGapsAlt(start, end) {\r\n if (start \u003C 1) {throw \u0027\u0027}\r\n result = {};\r\n var currentPrime = null;\r\n for (var i = start; i \u003C= end; i\u002B\u002B) {\r\n if (isPrime(i)) {\r\n if (currentPrime !== null) {\r\n if (!result.hasOwnProperty(i - currentPrime)) {\r\n result[i - currentPrime] = currentPrime;\r\n }\r\n }\r\n currentPrime = i;\r\n }\r\n }\r\n return result;\r\n}","TestCases":[{"Name":"Use intermediate var","Code":"primeGaps(fromNum, toNum);","IsDeferred":false},{"Name":"Use repeated calculation","Code":"primeGapsAlt(fromNum, toNum);","IsDeferred":false}]}