-
[백준] 1978번 소수 찾기 - 실버 5코딩 테스트 2023. 1. 14. 23:04
뭐가 잘못된걸까..?
import java.util.Scanner; public class B1978 { public static void main(String[] args) { Scanner s = new Scanner(System.in); int num = s.nextInt(), res = 0; int[] arrayN = new int[num]; for (int i = 0; i < num; i++) { arrayN[i] = s.nextInt(); } System.out.println(prime(arrayN)); } static int prime(int[] arrayN) { int res = arrayN.length; for (int n : arrayN) { if (n == 1) { res--; break; } else if (n == 2) { break; } else { for (int i = 2; i <= (n / 2) + 1; i++) { System.out.println("진입"); if (n % i == 0) { res--; break; } } } } return res; } }
흠... 2로 나누어 떨어지는 거를 못 잡는거 같다 ...
멍청한 짓을 했군.. break를 남발하다니...
import java.util.Scanner; public class B1978 { public static void main(String[] args) { Scanner s = new Scanner(System.in); int num = s.nextInt(), res = 0; int[] arrayN = new int[num]; for (int i = 0; i < num; i++) { arrayN[i] = s.nextInt(); } System.out.println(prime(arrayN)); } static int prime(int[] arrayN) { int res = arrayN.length; for (int n : arrayN) { if (n == 1) { res--; } else if (n != 2) { for (int i = 2; i <= (n / 2) + 1; i++) { if (n % i == 0) { res--; break; } } } } return res; } }
따흑 드디어 성공!!
근데 코드가 너무 지저분하다..
기깔나는 코드를 짜고싶은데 ㅠ
그래서..! 찾아보았다
[백준] 1978번 : 소수 찾기 - JAVA [자바] (tistory.com)
아니 무슨 소수 찾기에 이렇게 .. 해야지 그치 ㅇㅇ
방법2! 너로 정했다!!
제곱근을 이용한 판별법..
합성수 Number = A x B 에서 A와 B 중 적어도 하나는 Number의 제곱근보다 작거나 같다!
오.. 꽤나 당연한데 생각하지 못한 것이군..
import java.util.Scanner; public class B1978Ans { public static void main(String[] args) { Scanner s = new Scanner(System.in); int num = s.nextInt(); int[] arrayN = new int[num]; for (int i = 0; i < num; i++) { arrayN[i] = s.nextInt(); } System.out.println(prime(arrayN)); } static int prime(int[] arrayN) { int cnt = arrayN.length; for (int n : arrayN) { if (n == 1) cnt--; else if (n != 2) for (int i = 2; i <= Math.sqrt(n); i++) { if (n % i == 0) { cnt--; break; } } } return cnt; } }
맞았당..
근데 속도는 처음에 한게 더 빠르다... 역시 노가다가 속도는 빠른건가
위 글에서 BufferedReader 쓰는게 속도가 훨씬 빠르다는데.. 눈 아파서 내일 해봐야징
'코딩 테스트' 카테고리의 다른 글
[백준] 1929번 소수 구하기 (0) 2023.01.19 [백준] 2675번 문자열 반복 - 브론즈 2 (0) 2023.01.17 배열 형변환 (Stream) (0) 2023.01.17 [백준] 2563번 색종이 - 실버5 (0) 2023.01.17 [백준] 20115번 에너지 드링크(그리디) - 실버3 (0) 2023.01.15