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 문을 돌아 찾는 방법을 사용하는 것을 보고 학습 하였다.