본문 바로가기

Algorithm/Java

[백준알고리즘] 1978번 소수 찾기 (JAVA)

문제

주어진 수 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);
	}
}

 

출처

www.acmicpc.net/problem/1978

 

1978번: 소수 찾기

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

www.acmicpc.net

 

반응형