[JS.알고리즘] 뒤집어서 소수찾기

houndhollis·2024년 6월 25일
0
post-custom-banner

문제설명📘

N개의 자연수가 주어졌을 때 뒤집어서 소수인 것을 출력하시오

출력
[23, 2, 73, 2, 3]

풀이✏️

const solve = (arr) => { 
    // 배열에 자연수가 주어질때, 
    let answer = [];

    const isPrime = (num) => {
      if (num === 1) return false
      for (let i = 2; i <= parseInt(Math.sqrt(num)); i++) {
        if (num % i === 0) return false
      }
      return true
    }
    
    for(let x of arr) {
      let res = 0;
      while(x) {
        // 두가지 방법 !
        let t = x % 10;
        res = res * 10 + t;
        x = parseInt(x / 10)
      }

      // 아래 방법도 좋다!
      // let reverseNum = Number(x.toString().split('').reverse().join(''))
      if (isPrime(res)) answer.push(res);
    }
    return answer
  }

solve([32, 55, 62, 20, 250, 370, 200, 30, 100])

while 문은 바로 전 게시물과 같이 비슷하게 뒤에서부터 새롭게 res로 만들어 주는 방법이다. 저렇게 while 문을 써도 좋고 아니면 밑에 주석처리 된 방법도 상관없다.

소수 찾는 법은 따로 함수로 만들어서 작성했다. 실제 검색해본 결과 제곱근을 이용해서 for 문을 돌아 찾는 방법을 사용하는 것을 보고 학습 하였다.

profile
한 줄 소개
post-custom-banner

0개의 댓글