https://www.acmicpc.net/problem/1978
for 문으로 해당되는 숫자까지 무작정 나누어서 0으로 푸는 방법도 있지만,
당연히(?) 비효율적이기 때문에 그렇게 하는 방법보다는
number의 제곱근까지만 나누어주면 되는 방법을 이용하여 풀었다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int N;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int number = 0;
int count = 0;
for (int i = 0; i < N; i++) {
number = Integer.parseInt(st.nextToken());
if (number == 1)
continue;
boolean flag = true;
for (int j = 2; j <= Math.sqrt(number); j++) {
if (number % j == 0) {
flag = false;
break;
}
}
if (flag) {
count++;
}
}
System.out.println(count);
}
}
'프로그래밍 & IT > Algorithm' 카테고리의 다른 글
[알고리즘] 백준 11653번 소인수분해 :: 우유 (0) | 2021.10.20 |
---|---|
[알고리즘] 백준 2581번 소수 :: 우유 (0) | 2021.10.20 |
[알고리즘] - 소수 구하는 알고리즘 및 구현 (0) | 2021.10.18 |
[알고리즘] 백준 1712번 손익분기점 :: 우유 (0) | 2021.10.18 |
[알고리즘] 백준 3052번 나머지 :: 우유 (0) | 2021.10.07 |