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);
}
}
'코테 > 백준' 카테고리의 다른 글
11653번 소인수분해 (1) | 2025.02.10 |
---|---|
2581번 소수 (1) | 2025.02.08 |
9506번 약수들의 합 (1) | 2025.02.06 |
2501번 약수 구하기 (0) | 2025.02.06 |
5086번 배수와 약수 (1) | 2025.02.05 |