์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Java

[BOJ/Step9] 1978 : ์†Œ์ˆ˜ ์ฐพ๊ธฐ (JAVA)

NaNaRin๐Ÿ™ƒ 2021. 1. 19. 15:11

www.acmicpc.net/problem/1978

 

1978๋ฒˆ: ์†Œ์ˆ˜ ์ฐพ๊ธฐ

์ฒซ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 100์ดํ•˜์ด๋‹ค. ๋‹ค์Œ์œผ๋กœ N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ ์ˆ˜๋Š” 1,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.

www.acmicpc.net


๋ฌธ์ œ

์ฃผ์–ด์ง„ ์ˆ˜ N๊ฐœ ์ค‘์—์„œ ์†Œ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์ฐพ์•„์„œ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 100์ดํ•˜์ด๋‹ค. ๋‹ค์Œ์œผ๋กœ N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ ์ˆ˜๋Š” 1,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.

 

์ถœ๋ ฅ

์ฃผ์–ด์ง„ ์ˆ˜๋“ค ์ค‘ ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 1

4

1 3 5 7

 

์˜ˆ์ œ ์ถœ๋ ฅ 1

3


ํ’€์ด

1. ์ฃผ์–ด์ง€๋Š” ์ˆ˜๊ฐ€ 1000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋ฏ€๋กœ 1~1000 ์‚ฌ์ด์˜ ์†Œ์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐฐ์—ด์— ๋„ฃ์–ด๋‘”๋‹ค

   1-1. ์†Œ์ˆ˜๋Š” 1๊ณผ ์ž๊ธฐ ์ž์‹ ์œผ๋กœ๋งŒ ๋‚˜๋ˆ ์ง€๋Š” ์ˆ˜์ด๋ฏ€๋กœ, 2, 3, 5, …… ์ˆœ์ด๋‹ค.

   1-2. 2์™€ 3๋ถ€ํ„ฐ ๋ฐฐ์—ด prime[] ์— ๋„ฃ์–ด๋‘๊ณ 

   1-3. 4~1000 ์˜ ์ˆ˜๊ฐ€ ํ•ด๋‹น prime์˜ ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด์ง€๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ๋‚˜๋ˆ„์–ด์ง€์ง€ ์•Š๋Š” ์ˆ˜๋งŒ prime์— ์ถ”๊ฐ€ํ•œ๋‹ค.

2. ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜๊ฐ€ prime์— ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ์กด์žฌํ•  ๋•Œ๋งŒ count++

3. count๋ฅผ ์ถœ๋ ฅ

 

import java.util.Scanner;

public class B1978 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int t = sc.nextInt();
		int count = 0;
		
		int prime[] = new int[200];
		int primeIdx = 1;
		prime[0] = 2;
		prime[1] = 3;
		
		Loop1 :
		for(int i = 4; i <= 1000; i++) {
			for(int j = 0; j < primeIdx; j++) {
				if(i % prime[j] == 0) {
					continue Loop1;
				} else {
					
				}
			}
			prime[++primeIdx] = i;
		}
		
		for(int i = 0; i < t; i++) {
			int num = sc.nextInt();
			for(int j = 0; j <= primeIdx; j++) {
				if(prime[j] == num) {
					count++;
					break;
				}
			}
		}

		System.out.println(count);
	}
}