코테/백준
1978번 소수 찾기
jhss9747
2025. 2. 7. 14:51
https://www.acmicpc.net/problem/1978
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
풀이
주어진 수 N개 중 소수를 찾으면 되는 문제이기에 나는 이렇게 풀었다.
- N을 입력받아 반복문으로 입력을 받는다.
- 입력 받은 수 m 의 값이 1보다 같거나 작으면 continue 한다.
- 약수가 있는지 검사하고 약수가 존재하면 sum+1을 한다.
- 소수는 약수가 1이고, 아니면 1 이상의 값을 가진다.
- 약수가 1인 값만 count한다.
- 결과를 출력한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m, count = 0;
int sum;
for (int i = 0; i < n; i++) {
m = sc.nextInt();
if(m <= 1) continue;
sum = 0;
for (int j = 1; j <= m/2; j++) {
if(m%j == 0){
sum += j;
}
}
if(sum == 1) count++;
}
System.out.println(count);
}
}