인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

yuna kang님의 프로필 이미지
yuna kang

작성한 질문수

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

2. 뒤집은 소수

블루투포스 - 뒤집은 소수 답이 이상해요

작성

·

159

0

아래 코드를 작성해서 돌리면 답이 23, 55, 26, 52, 73이 나오는데..영상에서는 답이 23, 2, 73, 2, 3이 나와야 한다고 돼 있어서 뭐가 맞는지 모르겠어요...

'use strict';

console.clear();

function isPrime(num) {
    let answer;

    if (num === 1) answer = false;

    for (let i = 2; i <= parseInt(num / 2); i++) {
        if (num % i === 0) {
            answer = false;
        }
        answer = true;
    }
    return answer;
}

function solution(nums) {
    let answer = [];

    for(let num of nums) {
        let reversedNum = 0;

        while(num) {
            let one = num % 10; // 2
            reversedNum = reversedNum * 10 + one; // add numbers in the reversed order
            num = parseInt(num / 10);   // 3
        }

        if (isPrime(reversedNum)) answer.push(reversedNum);
    }
    return answer;
}

let nums = [32, 55, 62, 20, 250, 370, 200, 30, 100];

console.log(solution(nums));

답변 1

0

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

안녕하세요^^

뒤집은 숫자가 소수(prime)일때만 그 뒤집은 숫자를 출력하는 것입니다.

님에 코드가 출력하는 23, 55, 26, 52, 73 는 소수가 아닌 55, 26, 52는 소수(prime)이 아닌데도 출력하고 있는 것입니다. 

isPrime 함수가 잘못 작성되어 소수가 아닌데도 true를 리턴하고 있습니다.

yuna kang님의 프로필 이미지
yuna kang

작성한 질문수

질문하기