var prime_arr=[];
function prime(n1,n2){
for(n1; n1<=n2; n1++){
for(var i=2; i<n1; i++){
if(n1%i==0){
var result=0;
break;
} else{
var result=1;
}
}
if(result==1){
prime_arr.push(n1);
}
}
}
var num1=prompt("첫번째 정수 입력");
var num2=prompt("두번째 정수 입력");
num1=Number(num1);
num2=Number(num2);
prime(num1,num2);
document.write(num1 + "과 " + num2 + "사이에 있는 소수는 " + prime_arr + "입니다.");
중첩 반복문 사용. 중첩 반복문으로 두 범위 사이의 숫자들을 반복해서 소수인지 판별한다. 판별 결과가 참일 경우 배열에 그 값을 집어 넣는다.
소수를 판별하는 반복문에서는 소수가 아닌 것으로 확인되면 바로 break로 반복문을 종료시키고, 맞을 경우 판별 결과에 참을 넣고 반복문을 계속 진행한다.
* 수정
var prime_arr=[];
function prime(n1,n2){
if(n1==2){
prime_arr.push(n1);
} else if(n2==2){
prime_arr.push(n2);
}
var result=0;
for(n1; n1<=n2; n1++){
for(var i=2; i<n1; i++){
if(n1%i==0){
var result=0;
break;
} else{
var result=1;
}
}
if(result==1){
prime_arr.push(n1);
}
}
}
var num1=prompt("첫번째 정수 입력");
var num2=prompt("두번째 정수 입력");
num1=Number(num1);
num2=Number(num2);
prime(num1,num2);
if(prime_arr==0){
document.write(num1 + "과 " + num2 + "사이에 소수가 없습니다.");
} else {
document.write(num1 + "과 " + num2 + "사이에 있는 소수는 " + prime_arr + "입니다.");
}
1, 2의 경우 기존 작성한 코드로 판별하기 어려워 반복문으로 시작하기에 앞서 if 코드를 추가하였고, 두 정수 사이에 소수가 없을 수도 있기 때문에 그 부분을 감안하여 마지막에 출력하는 코드 역시 if 코드로 배열에 아무것도 없다면 소수가 없다는 결과물을 출력하도록 구성했다.