초보자이며 소수 테스트를 완료하려고하는데 문제가 있습니다.소수 테스트와 관련된 문제 자바 스크립트
var n = Number(prompt("Input the number you want to check for prime:"));
var i;
if (n < 2) {
alert(n + " is not a prime number.");
}
for (var i = 2; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
alert(n + " is not a prime number.");
break;
}
else {
alert(n + " is a prime number.");
break;
}
}
그것은 경우 팝업되지 않습니다 경고를 제외하고 제대로 실행중인
I 입력 3이하고 외설 경우에도 그 안에 3 소수로 돌아오고있는 모든 숫자 '여기에 내가 무엇을 가지고 티. 그 외에는 모든 테스트가 효과가있었습니다.
2와 3은 모두 소수이며, 문제는 루프를 구성한 방식입니다. 처음부터 끝까지 루프에서 빠져 나오고 있습니다. 대신에 최종 진술이 루프에서 벗어나야합니다. 또한 검사를 완전히 종료해야하므로 a) 함수로 감싸서 "return"할 수 있도록하거나 b) 즉시 경고하는 대신 플래그를 설정하여 isPrime = true; break;를 호출하고, 나중에 isPrime === true를 체크한다. –
'n'이 소수임을 발표 할 때 모든 약수를 테스트하지 않았기 때문입니다. –