[백준/JAVA] 27465번 소수가 아닌 수

정은아·2024년 11월 16일

[알고리즘] 수학 모음

목록 보기
132/152
post-thumbnail

문제

내 풀이 1 : 100점 ^^

import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {

        // 10의 9승 이하의 소수가 아닌 수랬으니까 걍 10의 9승 출력한다
        System.out.println(1000000000);
    }
}

내 풀이 2 : 100점

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int num = Integer.parseInt(br.readLine());

        while (true){
            int root = (int)Math.sqrt(num);
            boolean flag = false;

            for (int i = 2; i <= root; i++) {
                if (num % i == 0){
                    flag = true;
                    break;
                }
            }

            if (flag){
                sb.append(num);
                break;
            }

            num++;
        }

        System.out.println(sb.toString());

    }
}

느낀점

야매로 안푸니까 시간도 더 걸리고 메모리도 더 잡아먹는다.
때로는 요령이 더 낫다.

소수가 아닐 때에는 그대로 출력하고, 소수일 때에는 + 1해서 출력했더니 98%에서 틀렸다. 왜지? 2일때의 예외사항을 처리해도 똑같았다. 왜일까?

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글