인프런 커뮤니티 질문&답변

김선호님의 프로필 이미지
김선호

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

4-2 뒤집은 소수 질문드립니다ㅠㅠ

작성

·

102

0

isPrime 변수가 for문 밖에서 선언되면 73 만 소수로 구분되지 않습니다. 

이렇게 오류가 발생하는 원인이 궁금해서 질문드립니다!!

<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(arr){
                let answer=[]; tmp = [];
                for(let i of arr){
                    tmp.push(Number(String(i).split('').reverse().join('')))
                }
                let isPrime = true; // 73만 false로 구분
                for(let i of tmp){
                    // let isPrime = true; // 정상적으로 소수 구별
                    if (i===1) isPrime = false;
                    else if (i===2) isPrime = true;
                    for (let j=2; j<i; j++){
                        if (i%j === 0) {
                            isPrime = false;
                            break;
                        }
                    }
                    if (isPrime) answer.push(i);
                }
                return answer;
            }
            let arr=[32, 55, 62, 20, 250, 370, 200, 30, 100];
console.log(solution(arr));
        </script>
    </body>
</html>

 

 

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

isPrime 이 52를 확인할 때 false가 되고 그 상태가 73을 확인할 때 그대로 유지되기 때문입니다.

김선호님의 프로필 이미지
김선호

작성한 질문수

질문하기