algorithm/문제 풀이

백준 1978번 (소수 찾기) 자바 Java11

ssoheeh 2021. 1. 13. 23:03

문제 : 소수 찾기

시간 제한 : 2 sec

메모리 제한 : 128 MB

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.util.*;
 
public class Main {
    
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            list.add(sc.nextInt());
        }
        System.out.println(Collections.frequency(isPrimenum(list, n), true));
    }
 
    public static List<Boolean> isPrimenum(List<Integer> list, int n) {
        // TODO Auto-generated method stub
        List<Boolean> isprime = new ArrayList<>();
        int sum;
        for (int j = 0; j < n; j++) {
            sum = 0;
            int num = list.get(j);
            if(num==2) {
                isprime.add(true);
                continue;
            }    
            else if(num!=1) {
                for (int i = 2; i <num ; i++) {
                    if(num%i==0) {
                        sum++;
                        break;
                    }
                }
                if(sum>0)
                    isprime.add(false);
                else
                    isprime.add(true);
            }else {
                isprime.add(false);
            }
        }    
        return isprime;
    }
}
cs