[알고리즘] 뒤집은 소수 - Brute force (완전 탐색)
문제
N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 소수를 출력하 는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출 력한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된 0은 무시한다.
✏️ 입력설명
첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다. 각 자연수의 크기는 100,000를 넘지 않는다.
✏️ 출력설명
첫 줄에 뒤집은 소수를 출력합니다. 출력순서는 입력된 순서대로 출력합니다.
✏️ 입력예제 1
9
32 55 62 20 250 370 200 30 100
✏️ 출력예제 1
23 2 73 2 3
풀이
function solution(num) {
let str = ""; // 문자열로 변환한 배열을 저장하는 변수
let temp = ""; // 문자열의 위치를 바꾼 후 저장하는 변수
let result = []; // 소수 여부를 판별할 숫자들을 저장하는 배열
for (let i = 0; i < arr.length; i++) {
str = arr[i].toString(); // arr의 i번째 요소를 문자열로 바꿈.
temp = str.split("").reverse().join(""); // 문자열을 뒤집어 temp에 저장.
temp = temp.replace(/(^0+)/, ""); // 문자 앞의 0 제거. (정규식)
result.push(Number(temp)); // temp를 숫자로 변환 후 result에 삽입.
}
console.log("주어진 배열 뒤집기 : "+result);
for (let k=0;k<result.length;k++){
if(result[k]===1){
result.splice(k,1); // result 배열에 1인 요소 제거
} // (1은 어차피 소수가 아니기 때문.)
for (let j = 2; j < result[k] - 2; j++) { // 2부터 (자기자신-1)까지의 숫자 중
if (result[k] % j === 0) { // 약수가 존재하면
result.splice(k,1); // result 배열에서 제거
}
}
}
console.log("========================================");
console.log("결과 : "+result);
return result;
}
✏️ 문제 출처
Author And Source
이 문제에 관하여([알고리즘] 뒤집은 소수 - Brute force (완전 탐색)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@newsilver1028/알고리즘-뒤집은-소수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)