-
[백준]1747: 소수&팰린드롬 - JAVA문제풀이/백준 2021. 4. 15. 16:44
[백준]1747: 소수&팰린드롬
풀이
소수와 팰린드롬을 모두 판별하는 문제이다.
소수를 판별할 때에는 에라토스테네스의 체 알고리즘을 사용하여 빠르게 소수를 판별해 주었다.
간단히 설명하자면 소수를 판별하기 위해 나누어 지는 수가 있는지 확인할 때 나누어지는 수의 범위를 제곱근으로 줄여 빠르게 판별할 수 있다.
팰린드롬은 간단하게 입력받은 숫자를 문자열로 변경해 첫 문자와 마지막 문자에서 시작해 한 자리씩 이동하며 문자가 달리지는 순간 팰린드롬이 아니게 되므로 false를 반환하도록 하였다.
어렵지 않은 문자열 문제였당!
코드
123456789101112131415161718192021222324252627282930313233import java.util.*;public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();for(int i = n; ; i++) {if(isPalindrome(i) && isPrime(i)) {System.out.println(i);break;}}}public static boolean isPalindrome(int n) {String num = Integer.toString(n);for(int i = 0; i <= num.length() / 2; i++) {if(num.charAt(i) != num.charAt(num.length() - i - 1)) return false;}return true;}public static boolean isPrime(int n) {if(n == 1) return false;for(int i = 2; i <= Math.sqrt(n); i++) {if(n % i == 0) return false;}return true;}}cs '문제풀이 > 백준' 카테고리의 다른 글
[백준]5430: AC - JAVA (0) 2021.04.18 [백준]3109: 빵집 - JAVA (0) 2021.04.17 [백준]2665: 미로만들기 - JAVA (0) 2021.04.11 [백준]1600: 말이 되고픈 원숭이 - JAVA (1) 2021.04.04 [백준]1240: 노드사이의 거리 - JAVA (1) 2021.03.28