inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

쉽고 자연스럽게 배워보는 Javascript 입문 - 코드스쿼드 마스터즈 코스 레벨1

-연습문제 2

제가 작성한 코드에 궁금한 점이 있어요!

166

Stella

작성한 질문수 2

0

안녕하세요 선생님!
해설강의 보기 전에 작성한거라 이렇게 해도 되는지 궁금해서요.
일단 작동은 제대로 하는 것 같은데 더 간소화? 할 수 있는 부분은 없는지도 궁금하고요.

    <script>
        var i = Number(prompt("insert number except '1'"));
        var n = 2;
        while (i % n != 0) {
            n++; 
            console.log(i,n,i%n);
        }
        if (n != i) {
            document.write(i + " is not a prime number.");
        } else {
            document.write(i + " is a prime number.");
        }
    </script>        

while 문으로 작성했을 때, 콘솔에 짝수는 아예 console.log 가 안뜨더라구요.
var n = 2 로 설정하고 시작해서 인 것 같은데, 코드를 어떻게 수정하면 2로 나눈 것도 나머지가 0인게 뜰까요?
(3 부터는 다 떠요!)

그리고 여기서 while 문을 for 문으로 바꿔봤는데

         for (var n = 2; i % n != 0; n++) {
            console.log(i,n,i%n);
        }

이렇게 바꿨더니 콘솔에서 표시되는 부분이 달라지네요.
while 문일 때는 콘솔에 자기자신으로 나눠서 나머지가 0 이 되는 것까지 찍혔는데,
for 문으로 바꾸니까 콘솔에는 자기 자신 -1 로 나눈 것까지만 나오더라구요.
(for 문으로 바꿔도 소수이다/아니다 판별은 제대로 하긴 해요!)
보는 입장(?)에서 콘솔에 자기 자신으로 나눈 나머지가 0 인 것까지 나와야 소수인걸 확실히 이해할 것 같은데.. 코드를 어떻게 수정하면 되는 걸까요?
(혹시나 하고 console.log 앞이나 뒤에 n++; 를 넣어보았지만.. 무한히 나누기를 하는 재앙이...ㅠㅠ)

javascript

답변 1

0

호눅스

1) 첫 번째는 do ~ while 문을 사용하면 됩니다. 그다지 많이 사용하는 문법은 아닙니다.

2)

for (var n = 2; n <= i; n++) {

//...

}

로 바꿔 보세요.

그런데 자기 자신으로는 나눌 필요가 없습니다.

마찬가지로 2를 제외한 짝수는 소수가 아닌게 당연하므로 찍지 않아도 될 것 같습니다.

지금 코드도 괜찮습니다.

push 도중 "오류가 나면서 완료됨." 문제 해결

0

271

0

세 번째 프로그램 관련 질문입니다

0

253

0

submit때마다 print된 구구단을 지우고 싶어요..

0

361

1

this 질문

0

215

0

질문드립니다!

0

247

0

동영상 권한 문제

0

398

2

뒤집는 기능, 일치 여부 기능 구현해봤습니다 .

1

245

1

코드 어디서 확인할수있나요..???

1

240

1

소스트리 자꾸 꺼지는 현상

0

286

1

질문 드립니다.

1

200

1

질문 드립니다.

0

275

2

질문 드립니다.

1

188

1

줄바꿈

1

257

1

else 생략

0

797

1

지금까지 들었는데

0

269

3

질문있습니다! var과 let

0

198

1

질문 있습니다!

1

232

1

안녕하세요 선생님, 질문있습니다.

1

186

1

let이 재선언이 됩니다! 그리고 참고 링크가 사라진듯 해요.

1

237

1

예제1번 질문있습니다.

1

244

3

숫자로 변환할때 변수을 새로 만들어 줄 필요가 있는지 궁금해요 !!

0

225

2

javascript 강의 시작합니다 !!

0

180

0

'변수 이름 잘 짓기'가 코딩 3대 난제라면 나머지 두 개는 뭘까요??(내용무)

1

449

1

라이브 코딩 보는곳좀요!

0

396

3