문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
풀이
기본적인 소수찾기 문제. n이 1일때, 2일때는 예외이므로 따로 처리를 해줍니다. 이후에는 1씩 증가시키면서 n을 나누어서 나머지가 본인 이외 0이되는 것이 없다면 소수이므로 이를 이용해 풀이해줍니다..!! 다른 방법도 있겠지만 저는 sw를 1이면 소수, 0이면 소수가 아닌 수로 나누어서 풀어줬습니다.
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
|
public class Bakjoon {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int N=sc.nextInt();
int cnt=0;
for(int i=0;i<N;i++) {
int a=sc.nextInt();
if(Prime_num(a)==1) {
cnt++;
}
}
System.out.println(cnt);
}
public static int Prime_num(int n) {
int sw=1;
if(n==1) {sw=0;}
else if(n==2) {sw=1;}
else {
for(int i=2;i<n/2+1;i++) {
if(n%i==0) {
sw= 0;
}
}
}
return sw;
}
}
|
https://www.acmicpc.net/problem/1978
반응형
'Algorithms > BOJ[Java]' 카테고리의 다른 글
[백준/2966번] 찍기 [Java] (0) | 2019.12.03 |
---|---|
[백준/4153번] 직각삼각형 [Java] (0) | 2019.12.02 |
[백준/3460번] 이진수 [Java] (0) | 2019.12.02 |
[백준/10828번] 스택(Stack) [Java] (0) | 2019.12.02 |
[백준/2941번] 크로아티아 알파벳 [Java] (1) | 2019.12.02 |