https://www.acmicpc.net/problem/1978
1978번: 소수 찾기
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
www.acmicpc.net
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
첫 번째 시도
package ex1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(br.readLine());
String[] b = br.readLine().split(" ");
int numcount = 0;
for (int i = 0; i < a; i++) {
int num = Integer.parseInt(b[i]);
if (num >= 1 && num <= 1000) {
if (num == 1) {
//numcount++;
} else if (num == 2) {
numcount++;
} else if (num > 2) {
for (int j = 2; j < num + 1; j++) {
if (num % j == 0 && num != j) {
break;
} else if (num % j == 0 && num == j) {
numcount++;
}
}
}
}
}
System.out.println(numcount);
}
}
해결 방법
- 입력받은 숫자 중 1과 2를 예외로 두고 나머지 숫자들을 계산할 때 나머지가 0이면서 나누는 수가 자기 자신인 수만 찾고 count++을 했다.
어려웠던 점 / 고쳐야할 점
- 계속 틀렸다고 나와서 문제를 찾다가 1이 소수가 아닌 것으로 처리하고 count를 하면 안됐는데 count를 해서 원하는 값이 나오지 않았다. 문제를 잘 읽어야겠다.
반응형
'알고리즘 문제 풀이 (Problem Solving)' 카테고리의 다른 글
[Problem Solving/Java] 백준 4948번 - 베르트랑 공준 (2) | 2024.01.02 |
---|---|
[Problem Solving/Java] 백준 1929번 - 소수 구하기 (0) | 2024.01.02 |
[Problem Solving/Java] 백준 2581번 - 소수 (0) | 2023.08.30 |
[Problem Solving/Java] 백준 1712번 - 손익분기점 (0) | 2023.08.30 |
[Problem Solving/Java] 백준 1316번 - 그룹 단어 체커 (0) | 2022.04.07 |