// 소수 구하기
let prime = [];
let isPrime = true;
for(let i = 2; i < 100; i++){
for(let j = 2; j < i; j++){
if(i % j == 0){
isPrime = false;
}
}
if(isPrime){
prime.push(i);
}
isPrime = true;
}
let val = parseInt(prompt('숫자를 입력하세요:'), 10);
let 골드바흐파티션 = [];
for(let n of prime){
if(prime.includes(val - n) && n <= (val - n)){
골드바흐파티션.push([n, val - n])
}
}
let 차 = 골드바흐파티션.map(e => e[1] - e[0]);
let 작은값 = 골드바흐파티션[차.indexOf(Math.min.apply(null,차))];
let 큰값 = 골드바흐파티션[차.indexOf(Math.max.apply(null,차))];
console.log(골드바흐파티션);
console.log(작은값);
console.log(큰값);
+) 에라토스테네스의 체
function prime_list(n){
//에라토스테네스의 체 초기화: n개 요소에 True 설정(소수로 간주)
let sieve = []
for(let i = 2; i < n; i++){
sieve.push(true);
}
//n의 최대 약수가 sqrt(n) 이하이므로 i=sqrt(n)까지 검사
let m = parseInt(n ** 0.5, 10);
for(let i = 2; i < m + 1; i++){
if (sieve[i] == true){ // i가 소수인 경우
for(let j = i+i; j < n; j+=i){ // i이후 i의 배수들을 False 판정
sieve[j] = false;
}
}
}
// 소수 목록 산출
let prime = [];
for(let i = 2; i < n; i++){
if (sieve[i] == true){
prime.push(i);
}
}
return prime;
}