IT 기획의 길
백준 1978번 소수찾기 [JAVA] 본문
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.

알고리즘 설계
1. 소수란 1과 자기자신만을 약수로 갖는 1보다 큰 수를 말한다
2. 소수냐 아니냐를 true & false로 지정한다
3. 1은 무조건 false이다
4. 2보다 크고 자기 자신보다 작은 수로 나눠지는 경우가 1번이라도 있는 수는 소수가 아니다
5. 3,4를 통과한 수는 소수이다
6 count변수로 입력한 수중 소수가 몇개인지 check한다
7.
if(prime(arr[i])){
count++;
}
를 사용하여 true인 경우 count를 증가시켜준다
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int []arr = new int[n];
int count=0;
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
if(prime(arr[i])){
count++;
}
}
System.out.print(count);
}
public static boolean prime(int a) {
if (a == 1) {
return false;
} else if (a > 1) {
for (int i = 2; i < a; i++) {
if (a % i == 0)
return false;
}
}
return true;
}
}
'알고리즘(백준) > 수학' 카테고리의 다른 글
백준 17087번 숨바꼭질6 [JAVA] (0) | 2021.01.09 |
---|---|
백준 9613번 GCD합 [JAVA] (0) | 2021.01.09 |
백준 6588번 골드바흐의 추측 [JAVA] (0) | 2021.01.09 |
백준 1929번 소수구하기 [JAVA] (0) | 2021.01.08 |
백준 2960번 에라토스테네스의 체 [JAVA] (0) | 2021.01.07 |