33 lines
684 B
TypeScript
33 lines
684 B
TypeScript
export {};
|
|
const N: number = Number(require("fs").readFileSync(0).toString().trim());
|
|
|
|
let isPrime: boolean[] = Array(N+1).fill(true);
|
|
isPrime[0] = false; isPrime[1] = false;
|
|
|
|
for(let i=2; i*i <= N; i++) {
|
|
if(isPrime[i]) {
|
|
for(let j=i*i; j<=N; j+=i) isPrime[j] = false
|
|
}
|
|
}
|
|
|
|
let nums: number[] = [];
|
|
for(let n=2; n<=N; n++) if(isPrime[n]) nums.push(n);
|
|
|
|
let [L, R]: number[] = [0,0];
|
|
let acc: number = nums[0];
|
|
let count: number = 0;
|
|
|
|
while(R < nums.length) {
|
|
if(acc === N) {
|
|
count++;
|
|
acc -= nums[L++];
|
|
}
|
|
else if(acc > N) {
|
|
acc -= nums[L++];
|
|
}
|
|
else {
|
|
if(++R < nums.length) acc += nums[R];
|
|
}
|
|
}
|
|
|
|
console.log(count); |