주어진 수 N
개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
첫 줄에 수의 개수 N
이 주어진다. N은 100이하
이다.
다음으로 N개의 수
가 주어지는데 수는 1,000 이하
의 자연수이다.
주어진 수들 중 소수의 개수
를 출력한다.
4
1 3 5 7
3
-데이터를 추가한 사람: bclim9108, nova9128
-문제의 오타를 찾은 사람: djm03178
import java.util.Scanner;
public class Code1978 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int count=scanner.nextInt();
int num=0;
int answer=0;
int countDivisor=0;
for(int i=0;i<count;i++) {
num=scanner.nextInt();
if(num==1) { //1 is not prime number
continue;
}else {
int j=1;
countDivisor=0;
while(num>=j) {
if(num%j==0) {
countDivisor++;
}
j++;
}
if(countDivisor==2) { //1 and self
answer++;
}
}
}
System.out.println(answer);
}
}
만약 약수가 본인이랑 1밖에 없어서 countDivisor
값이 2가 됐다면, 그것이 소수
로 answer
을 1씩 증가 시킨다. 그렇지 않으면 다음 값으로 계속 반복한다.