BOJ 1978
2020-02-06
위 문제는 백준 사이트의 알고리즘 1978 문제에 관한 설명입니다.
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
int primeNumber = 0;
for (int i = 0; i < N; i++) {
int number = scanner.nextInt();
if (checkPrimeNumber(number) == true)
primeNumber++;
}
System.out.println(primeNumber);
}
private static boolean checkPrimeNumber(int number) {
int temp = number;
boolean answer = true;
if (temp == 1) {
answer = false;
} else {
for (int i = 2; i < temp; i++) {
if (temp % i == 0)
{
answer = false;
break;
}
}
}
return answer;
}
}
제가 푼 소스코드입니다.
코드 설명
N을 받았을 때, 본인과 1로만 약수가 있는 수를 소수라고 합니다. 따라서 (temp % i == 0)를 이용해서 풀어보았습니다. 간단한 문제입니다.