[백준 1978번] 소수 찾기
2022. 4. 23. 22:59ㆍ코딩 테스트(JAVA)/백준
https://www.acmicpc.net/problem/1978
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
예제 입력 1 복사
4
1 3 5 7
예제 출력 1 복사
3
문제 분석
1. n을 입력받습니다.
2. n을 돌면서 숫자(num)를 받습니다.
3. 1 제외, 2 ~ num-1로 num을 나누어 0이 되면 소수가 아닙니다, 소수만 cnt++합니다.
4. cnt 출력합니다.
소수(prime)란?
소수는 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수입니다.
이를 바탕으로 코드 구현을 해보겠습니다.
수를 입력받을 때 어떤 형태로 받을지 고민 후 접근합니다 : 하나씩 받을지 아니면 배열에 넣으면서 만들지 고민
성공 코드
import java.util.*;
public class Main {
public boolean prime(int num) {
if(num == 1) return false;
for(int i=2; i<num; i++) {
if(num % i == 0) return false;
}
return true;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int num;
int cnt = 0;
for(int i=0; i<n; i++) {
num = kb.nextInt();
// num을 메서드로 넘겨서 리턴값이 true면 cnt++
if(T.prime(num)) cnt++;
}
System.out.println(cnt);
}
}
코테에 나오는 알고리즘 유형을 풀다가, 기본이 부족한 것 같아서 기본 문제부터 풀고 있는데 왜,,,,
푸는 시간은 비슷한 걸까요?... 😂
'코딩 테스트(JAVA) > 백준' 카테고리의 다른 글
[백준 1789번] 수들의 합 (0) | 2022.04.26 |
---|---|
[백준 1292번] 쉽게 푸는 문제 (0) | 2022.04.24 |
[백준 2693번] N번째 큰 수 (0) | 2022.04.23 |
[백준 2609번] 최대공약수와 최소공배수 (0) | 2022.04.21 |
[백준 2309번] 일곱 난쟁이 (0) | 2022.04.21 |