<html>
<body>
<>
var i,j,num,sum=0,count=0;
num = parseInt(prompt("정수 입력"));
for(i=2;i<=num;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)
{
break;
}
}
if(i==j)
{
count = count + 1;
sum = sum + i;
document.write("소수 " + count + " : " + i + "<br>");
}
}
document.write("정수 " + num + "까지 소수들의 합 : " + sum);
</>
</body>
</html>
하나의 정수를 입력해서 그 정수까지 소수들을 출력하고 소수들 합구하는 건데여
값은 잘 나오는데 나오는 이유가 잘 이해가 안되여
저렇게 돌렸을 때 왜 4,6,8,9,10 등 안나오는 이유가 뭔가여??
i가 4일때 j도 4면 4출력되야 되지않나여??
잘 이해가 안되네여 ㅠㅠ
<body>
<>
var i,j,num,sum=0,count=0;
num = parseInt(prompt("정수 입력"));
for(i=2;i<=num;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)
{
break;
}
}
if(i==j)
{
count = count + 1;
sum = sum + i;
document.write("소수 " + count + " : " + i + "<br>");
}
}
document.write("정수 " + num + "까지 소수들의 합 : " + sum);
</>
</body>
</html>
하나의 정수를 입력해서 그 정수까지 소수들을 출력하고 소수들 합구하는 건데여
값은 잘 나오는데 나오는 이유가 잘 이해가 안되여
저렇게 돌렸을 때 왜 4,6,8,9,10 등 안나오는 이유가 뭔가여??
i가 4일때 j도 4면 4출력되야 되지않나여??
잘 이해가 안되네여 ㅠㅠ
i가 4인데 j도 4가 될 수는 없어
i가 4일 때, 안쪽 루프에서 j를 2부터 4까지 돌려 가면서 안쪽 루프 안쪽의 if 블럭으로 j가 i의 약수인지 검사를 하는데
j가 2일 때 4가 2로 나누어 떨어지니까 안쪽 for문이 break되는 거임
아아!! 안쪽 for문에 들어갈때 계속 2로 설정되는거에요??
이해 되네요. 감사합니다.