-
Notifications
You must be signed in to change notification settings - Fork 0
/
calculate.js
41 lines (35 loc) · 964 Bytes
/
calculate.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
const fs = require('fs');
const path = require('path');
// 2 이상의 자연수에서만 정상적으로 작동합니다.
function isPrime(n) {
for (var i = 2; i < n; i++) {
if (n%i == 0) {
return false;
}
}
return true;
}
const PI = fs.readFileSync('PI_1000000.txt', 'utf8').trim();
n = Number(process.argv[2]);
result = [];
result_distribution = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
prime_array = [];
let num;
for (var i = 2; i <= n; i++) {
if (isPrime(i) == false) {
continue;
}
num = PI[i - 1];
result.push(num);
result_distribution[num] = result_distribution[num] + 1;
prime_array.push(i);
}
console.log(`n = ${n}`);
console.log(`2 이상 n 이하의 소수의 개수: ${result.length}`);
console.log("==========");
for (var i = 0; i < 10; i++) {
console.log(`${i} : ${result_distribution[i]}`);
}
console.log("==========");
console.log(`마지막 소수: ${prime_array[prime_array.length - 1]}`);
console.log(result);