N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 소수를 출력하는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된 0은 무시한다.
첫 줄에 자연수의 개수 N3(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다.
각 자연수의 크기는 100,000를 넘지 않는다.
첫 줄에 뒤집은 소수를 출력합니다. 출력순서는 입력된 순서대로 출력합니다.
9
32 55 62 20 250 370 200 30 100
23 2 73 2 3
function solution() {
let isDecimal = false;
let answer = [];
for (let i = 0; i < arr.length; i++) {
// 숫자 뒤집기
let reverse = '';
while (arr[i]) {
reverse += arr[i] % 10;
arr[i] = parseInt(arr[i] / 10);
}
let num = parseInt(reverse);
if (num % i !== 0 && num % i !== 1) {
isDecimal = true;
answer.push(num);
}
}
return answer;
}
2번 째 풀이
function isPrime(res) {
if (res === 1) return false;
for (let i = 2; i <= res / 2; i++) {
if (res % i === 0) return false;
}
return true;
}
function solution() {
let answer = [];
for (let i = 0; i < arr.length; i++) {
let res = 0;
while (arr[i]) {
let reverse = arr[i] % 10;
res = res * 10 + reverse;
arr[i] = parseInt(arr[i] / 10);
}
console.log(res);
if (isPrime(res)) {
answer.push(res);
}
}
console.log(answer);
return answer;
}