백준 알고리즘 9단계 기본 수학2 1978번 문제입니다.
Q. 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
[입력]
- 첫 줄에 수의 개수 N이 주어진다.
- 둘째 줄에 N개의 수가 주어진다.
[조건]
- N은 100이하이다.
- N개의 수는 1000이하의 자연수이다.
풀이
소수는 1보다 큰 자연수 중 1과 자기 자신만을 약수로 갖는 수를 말한다.
이 문제는 반복문을 돌려 자신 이외의 수로 떨어지는 경우를 체크하는 방식으로 풀 수 있었다.
소스
package com.baek.algo.step09;
import java.util.Scanner;
public class Q1978 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int cnt = 0;
for(int i = 0; i < n; i++) {
int num = sc.nextInt();
if(num > 1) {
boolean pNum = true;
for(int j = 1; j <= num; j++) {
if(j != 1 && j != num) {
if(num % j == 0) {
pNum = false;
break;
}
}
}
if(pNum == true) {
cnt = cnt + 1;
}
}
}
System.out.println(cnt);
sc.close();
}
}