Programming/Algorithm
[백준] 1978번 : 소수찾기 (Java)
안녕주
2021. 8. 6. 20:28
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
코드
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int count = 0;
for(int i = 0; i < N; i++){
int k = sc.nextInt();
boolean Test = true;
if (k == 1){
continue;
}
for (int j = 2; j <= Math.sqrt(k); j++){
if ( k % j == 0){
Test = false;
break;
}
}
if (Test){
count++;
}
}
System.out.println(count);
}
}
풀이
소수.... 처음에 너무 생각 없이 코드를 짰다가 틀렷다. 그래서 구글링을 통해 문제를 풀었다.
여기서 포인트는
1. 1은 소수가 아니다
2. 2 ~ k의 제곱근까지 중 나누어 떨어지는 것이 있는지 판별
3. 2,3인 경우는 자연스럽게 통과 되여 coun++된다.