| 문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
| 입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
| 출력
주어진 수들 중 소수의 개수를 출력한다.
| 예제 입력
4
1 3 5 7
| 예제 출력
3
| 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i=0; i<arr.length; i++)
arr[i] = Integer.parseInt(st.nextToken());
int result = 0;
for(int i=0; i<arr.length; i++)
{
int count = 0; // 소수의 갯수를 저장할 변수
if(arr[i]==1)
continue;
for(int j=2; j<arr[i]; j++) // 소수는 1과 자기 자신만 약수로 갖는 수이기 때문에 1과 자기 자신을 제외한 수에서 나머지가 0이 되는 수가 있는지만 확인하면 됨
{
if(arr[i] % j ==0)
{
count++;
}
}
if(count == 0)
result++;
}
System.out.println(result);
}
}
| 정리
계에에속 틀렸습니다가 뜨는데 왜 그런지 이유를 몰라서 답답했다!!!
하지만 나의 바보 같은 실수때문이었다.
소수의 갯수를 저장할 count를 다음 배열의 방에 들어가기 전에 초기화를 시켜야 되는데
초기화 코드를 반복문 밖에 적었던 것,,,,,,!!!
그래서 오류가 계속해서 났었다는 바보같은 실수의 이야기~!!!