Notice
Recent Posts
Link
- Today
- Total
hye-log
[백준]1978번 소수 찾기(JAVA) 본문
0. 문제 링크
https://www.acmicpc.net/problem/1978
1978번: 소수 찾기
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
www.acmicpc.net
1. 문제 설명
1) 주어진 수 N개 중에서 소수의 개수 출력
2. 입출력
// input
4
1 3 5 7
// output
3
3. 코드
import java.util.Scanner;
public class b1978 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int ans = 0; // 소수의 개수
for (int i = 0; i < N; i++) { // N개의 수가 소수인지 판단
int num = sc.nextInt();
if(isPrime(num)) ans++; // 소수이면 ans 1 증가
}
System.out.println(ans);
}
private static boolean isPrime(int n) { // 소수인지 판단
if(n == 1) { //1은 소수가 아니다
return false;
}
for (int i = 2; i <= (int)Math.sqrt(n); i++) { // 2부터 n의 제곱근까지 나누어 봄
if(n % i == 0) { // 나머지가 0이면 나누어 떨어지므로 소수가 아님
return false;
}
}
return true; // 모든 나누기를 통과하면 소수
}
}
실행 결과
4. 회고
1) 소수인지 판단하는 isPrime 함수 이용
- 1은 소수가 아님
- 2부터 n의 제곱근까지 나누었을 때 나머지가 0이면 소수가 아님
- 모두 나누어 떨어지지 않으면 소수
5. Github
728x90
'CodingTest > Baekjoon' 카테고리의 다른 글
[백준]14940번 쉬운 최단거리(JAVA) (0) | 2023.08.18 |
---|---|
[백준]1920번 수 찾기(JAVA) (0) | 2023.08.18 |
[백준]1676번 팩토리얼 0의 개수(JAVA) (0) | 2023.08.18 |
[백준]1018번 체스판 칠하기(JAVA) (0) | 2023.08.18 |
[백준]10989번 수 정렬하기 3(JAVA) (0) | 2023.08.18 |
Comments