문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
예제
풀이
1. Scanner
import java.util.*;
import java.lang.*;
import java.io.*;
public class Main{
public static void main (String[] args) throws java.lang.Exception {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int result = 0;
for(int i=0; i<N; i++){
int num = sc.nextInt();
int cnt = 0;
for(int j=1; j<=num; j++){
if(num%j == 0){
cnt++;
}
}
if(cnt==2){ // 1과 자기 자신을 나눴을 때 이렇게 두가지 경우의 수만 만족할 때 result++;
result++;
}
}
System.out.println(result);
}
}
2. BufferedReader
import java.util.*;
import java.lang.*;
import java.io.*;
public class Main{
public static void main (String[] args) throws java.lang.Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int result = 0;
st = new StringTokenizer(br.readLine(), " ");
for(int i=0; i<N; i++){
int num = Integer.parseInt(st.nextToken());
int cnt = 0;
for(int j=1; j<=num; j++){
if(num%j == 0){
cnt++;
}
}
if(cnt==2){ // 1과 자기 자신을 나눴을 때 이렇게 두가지 경우의 수만 만족할 때 result++;
result++;
}
}
System.out.println(result);
}
}
출처
1978번: 소수 찾기
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
www.acmicpc.net
반응형
'Algorithm > Java' 카테고리의 다른 글
[백준알고리즘] 11653번 소인수분해 (JAVA) (0) | 2021.03.05 |
---|---|
[백준알고리즘] 2581번 소수 (JAVA) (0) | 2021.03.04 |
[백준알고리즘] 1011번 Fly me to the Alpha Centauri (JAVA) (0) | 2021.03.02 |
[백준알고리즘] 10757번 큰 수 A+B (JAVA) (0) | 2021.02.26 |
[백준알고리즘] 2839번 설탕 배달 (JAVA) (0) | 2021.02.25 |