1. 기본 풀이
import java.util.Scanner;
public class primeNum_1978 {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
int[] num = new int[n];
for (int i = 0; i < n; i++) {
num[i] = sc.nextInt();
}
int res = 0;
for (int i = 0; i < n; i++) {
int j;
for (j = 2; j < num[i]; j++) {
if (num[i] % j == 0) {
break;
}
}
if (num[i] == j) {
res++;
}
}
System.out.println(res);
}
}
소수는 1과 자신만을 약수로 가지는 수를 뜻한다.
먼저, 입력받은 수를 모두 배열에 넣고,
각 숫자를 반복문으로 돌아가며
2부터 자신보다 1 작은 수를 반복하는 이중 for문 안에서 나누어떨어지는 값이 있는지 확인한다.
나누어 떨어지는 값이 있다면 소수가 아니므로 break해서 빠져나오고,
마지막 숫자로 나누었는데도 나누어떨어지는 수가 없었다면 res를 증가시켜준다
2. boolean 사용한 방법
import java.util.Scanner;
public class primeNum_1978 {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
int res = 0;
for (int i = 0; i < n; i++) {
int k = sc.nextInt();
boolean isPN = true;
if (k == 1) continue;
for (int j = 2; j < k; j++) {
if (k % j == 0) {
isPN = false;
}
}
if (isPN) res++;
}
System.out.println(res);
}
}
boolean값은 true로 초기화해두고,
나누어떨어지는 값이 있다면 false로 바꿔준다.
boolean값이 true일 때만 res를 증가시켜준다.
'JAVA' 카테고리의 다른 글
[JAVA][백준] 1181_단어정렬 (Comparator) (1) | 2024.04.18 |
---|---|
[JAVA][백준] 10989_수 정렬하기 3 (BufferedReader) (0) | 2024.04.16 |
[JAVA][백준] 10809_알파벳 (0) | 2024.04.15 |
[JAVA][백준] 8958_OX퀴즈 (0) | 2024.04.15 |
[JAVA][백준] 3052_나머지 (0) | 2024.04.15 |