์ฝ”๋”ฉํ…Œ์ŠคํŠธ/BOJ

[๋ฐฑ์ค€1978]-์†Œ์ˆ˜ ์ฐพ๊ธฐ(C++)

kite707 2021. 7. 18.

https://www.acmicpc.net/problem/1978

 

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

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

www.acmicpc.net

์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ

2๋ณด๋‹ค ์ž‘์œผ๋ฉด ๋ฌด์กฐ๊ฑด ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ false๋ฅผ ๋ฆฌํ„ด, ๊ทธ๊ฒŒ ์•„๋‹ ๊ฒฝ์šฐ 2๋ถ€ํ„ฐ ํ•ด๋‹น ์ˆ˜์˜ ์ œ๊ณฑ๊ทผ์œผ๋กœ ๋‚˜๋ˆ ๋ณด๋ฉฐ ํ•œ๋ฒˆ์ด๋ผ๋„ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ํŒ์ •ํ•˜๋Š” ๋ฐฉ์‹์„ ์ด์šฉํ•˜์˜€๋‹ค. ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. sqrt๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ #include <cmath> ๋ฅผ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

bool isPrime(int p) {
	if (p < 2) {
		return false;
	}
	double sq = sqrt(p);
	for (int i = 2; i <= sq; i++) {
		if (p % i == 0) {
			return false;
		}
	}
	return true;
}

์ „์ฒด ์ฝ”๋“œ

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
vector <int> num;

bool isPrime(int p) {
	if (p < 2) {
		return false;
	}
	double sq = sqrt(p);
	for (int i = 2; i <= sq; i++) {
		if (p % i == 0) {
			return false;
		}
	}
	return true;
}

int main() {
	int N;
	int a;
	cin >> N;
	while (N--) {
		cin >> a;
		num.push_back(a);
	}
	int count = 0;
	for (int i = 0; i < num.size(); i++) {
		if (isPrime(num[i])) {
			count++;
		}
	}
	cout << count;
}

 

๋Œ“๊ธ€