2022/01/12) 2. 뒤집은 소수 [완전탐색(블루투포스)]

굥굥이·2022년 1월 13일
0
post-thumbnail

1. 문제

<뒤집은 소수>
: N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 소수를 출력하는 프로그램을 작성한다. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력한다. 단 910을 뒤집으면 19로 숫자화해야 한다. 첫 자리부터의 연속된 0은 무시한다.

2. 해결 방법

  1. 앞에서 배운대로 숫자를 문자열로 바꾼 후 역순으로 해도 되지만, 이번엔 숫자를 그대로 역순으로 바꿔보자.
  2. 함수를 하나 생성해서, 소수일 경우인 true를 반환하고, 소수가 아닐 경우엔 false를 반환한다.

! 플러스 개념
-> Math.sqrt(x)

  • Math.sqrt(x) : x의 제곱근 값을 반환한다.

3. 정답

        <script>
            function 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;
            }
            function solution(arr){
                let answer=[];
                for(let x of arr){
                    let res=0;
                    while(x){
                        let t=x%10;
                        res=res*10+t;
                        x=parseInt(x/10);
                    }
                    if(isPrime(res)) answer.push(res);
                }
                return answer;
            } 
            let arr=[32, 55, 62, 20, 250, 370, 200, 30, 100];
            console.log(solution(arr));
        </script>
        <script> //문자열로 바꾼 후 srj사용하기. 그리고 앞에 있는 0을 없애주기 위해 Number로 변환시켜주기
            function 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;
            }
            function solution(arr){
                let answer=[];
                for(let x of arr){
                    let res=Number(x.toString().split('').reverse().join(''));
                    if(isPrime(res)) answer.push(res);
                }
                return answer;
            }
            let arr=[32, 55, 62, 20, 250, 370, 200, 30, 100];
            console.log(solution(arr));
        </script>

4. 내 코드와 비교 그리고 반성

1일 1알고리즘해야하는데, 문제만 풀고 인강 안봄. 이번만 당일에 한 걸로 쳐주겠어.

profile
아자아자 파이띵굥!

0개의 댓글