-
[백준-1978]-[수학-소수]-소수 찾기 (java)알고리즘/수학 2018. 11. 27. 12:33
문제링크 : https://www.acmicpc.net/problem/1978
이 문제는 입력받은 수 중에서 소수가 몇개 존재하는지 출력하는 문제이다.
먼저 소수는 1을 제외하고 1과 본인으로만 나눠질 수 있는 수를 말한다.
2부터 입력받은 수 N-1 까지 반복을 돌면서 나눈 나머지 값이 한번이라도 0이 된다면 그 수는 소수가 아니라는 소스를 만들면 된다.
이 문제에서 해줘야 하는 예외 처리는 1은 소수가 아니기 때문에 1을 입력 받으면 소수가 아니라고 판단하면 되겠다.
소스
12345678910111213141516171819202122232425262728293031323334import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = null;int size = Integer.parseInt(br.readLine());st = new StringTokenizer(br.readLine());int primeCnt = 0;for(int i=0; i < size; i++) {int num = Integer.parseInt(st.nextToken());if(isPrimeNumber(num)) primeCnt++;}System.out.println(primeCnt);}public static boolean isPrimeNumber(int num) {// 1은 소수가 아니다if(num == 1) return false;// 2 ~ N - 1 까지 한번이라도 나눠지면 그 수는 소수가 아니다.for(int i = 2; i < num; i++) {if(num%i == 0) return false;}return true;}}cs '알고리즘 > 수학' 카테고리의 다른 글
[백준 2609] - [수학 최소공배수 최대공약수] - 최대공약수와 최소공배수(JAVA) (0) 2018.12.03 [백준 9020]-[수학] - 골드바흐의 추측 (0) 2018.11.27 [백준 4948]-[수학] - 베르트랑 공준 (0) 2018.11.27 [백준 1929]-[수학]-[에라토스테네스의 체] - 소수 구하기 (java) (1) 2018.11.27 [백준 2581] - [수학] - 소수 (0) 2018.11.27 댓글