2015-01-04 6 views
-4

이 코드는 처음 몇 개의 삼각형 숫자가 소수인지 아닌지를 확인하지만 실행되지는 않습니다.왜이 간단한 자바 스크립트 코드가 작동하지 않습니까?

<!DOCTYPE HTML> 
<html> 
<head><title>C1E9P1</title> 
<script> 

for(i = 3; i < 13; i++){ 
    prime = true; 
    n = (i*(i+1))/2; 
    for(i = 2; i < Math.sqrt(n)+1; i++){ 
     if(n%i == 0){ 
      prime = false; 
     } 
    } 
    if(prime){ 
     document.write(n+" is prime."); 
     document.write("<br>"); 
    } else { 
     document.write(n+" is composite."); 
     document.write("<br>"); 
    } 
} 


</script> 
</head> 
</html> 
+0

정확히 작동하지 않는 항목은 무엇입니까? 오류 메시지가 있습니까? – Codor

+0

브라우저에서 실행 해보지 만로드 만합니다. – 788

+0

콘솔에 오류가 있습니까? – Doorknob

답변

5

중첩 된 두 개의 변수에 대해 동일한 변수를 사용했습니다.

for(i = 3; i < 13; i++){ <-- i 
    for(i = 2; i < Math.sqrt(n)+1; i++){ <-- i 
+0

감사합니다. 완벽하게 작동합니다. – 788

1

나는 스크립트를 수정했지만 알고리즘이 올바른지 알 수 없습니다.

for(var i = 3; i < 13; i++){ 
    var prime = true; 
    var n = (i*(i+1))/2; 
    for(var j = 2; j < Math.sqrt(n)+1; j++){ 
     if(n%j == 0){ 
      prime = false; 
     } 
    } 
    if(prime){ 
     document.write(n+" is prime."); 
     document.write("<br>"); 
    } else { 
     document.write(n+" is composite."); 
     document.write("<br>"); 
    } 
} 
2

이 시도하고 자바 스크립트 콘솔에서 볼 : 당신은 내가 아닌 다른 것으로 내부에 대한 루프의 변수 이름을 변경해야합니다

for(var i = 3; i < 13; i++){ 
 
    var prime = true; 
 
    var n = (i*(i+1))/2; 
 
    for(var j = 2; j < Math.sqrt(n)+1; j++){ 
 
     if(n%j == 0){ 
 
      prime = false; 
 
     } 
 
    } 
 
    if(prime){ 
 
     console.log(n+" is prime."); 
 
     console.log("<br>"); 
 
    } else { 
 
     console.log(n+" is composite."); 
 
     console.log("<br>"); 
 
    } 
 
}

1

.

for(i = 3; i < 13; i++){ 
    prime = true; 
    n = (i*(i+1))/2; 
    for(j = 2; j < Math.sqrt(n)+1; j++){ 
    if(n%j == 0){ 
     prime = false; 
    } 
} 

그 후에 모두 좋을 것입니다.

관련 문제