728x90
1978번: 소수 찾기
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
www.acmicpc.net
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
풀이
for문을 이용해 해당 숫자가 그 수의 제곱이 되기 전까지(제곱은 무조건 소수가 아니므로) 차례대로 나누면 된다
코드
package 문제풀이;
import java.io.*;
import java.util.*;
public class S5_1978_소수찾기 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int ans = 0;
StringTokenizer st = new StringTokenizer(br.readLine());
outer: for (int i = 0; i < N; i++) {
int num = Integer.parseInt(st.nextToken());
if(num == 1) continue outer;
else {
for (int j = 2; j <= Math.sqrt(num); j++) {
if(num % j == 0) continue outer;
}
}
ans++;
}
System.out.println(ans);
}
}
결과
#자바 #java #boj #백준 #알고리즘
728x90
'알고리즘 > BOJ' 카테고리의 다른 글
[JAVA][BOJ][S2] 13565. 침투 (0) | 2022.07.24 |
---|---|
[JAVA][BOJ][S1] 1926. 그림 (0) | 2022.07.23 |
[JAVA][BOJ][S3] 1431. 시리얼 번호 (0) | 2022.07.21 |
[JAVA][BOJ][S2] 2644. 촌수계산 (0) | 2022.07.20 |
[JAVA][BOJ][S4] 17219. 비밀번호 찾기 (0) | 2022.07.19 |