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

 

1978번: 소수 찾기

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

www.acmicpc.net

 

 

 

 

문제

 

주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.

 

 

 

 

소수의 개수를 찾기 위해 에라토스테네스의 채를 사용한다. 

 

https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4

 

에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 수학에서 에라토스테네스의 체는 소수(소수)를 찾는 방법이다. 고대 그리스 수학자 에라토스테네스가 발견하였다. 알고리즘[��

ko.wikipedia.org

 

 

 

코드

 

#include <iostream>
#include <math.h>
using namespace std;

bool cn(int n){
	int m = sqrt(double(n));

	if(n == 1) return false;

	for(int i = 2; i <= m; i++) {
		if(n % i == 0) return false;
	}

	return true;
}

int main(void){
	int count;
	int n;
	int ans = 0; // 소수의 개수 저장

	cin>>count;
	for(int i = 0; i < count; i++)  {
		cin>>n;
		if(cn(n)) ans++;
	}

	cout<<ans;
}

 

728x90

'알고리즘 > 백준' 카테고리의 다른 글

백준 6588번: 골드바흐의 추측  (0) 2020.05.18
백준 1929번: 소수 구하기  (0) 2020.05.18
백준 11576번: Base Conversion  (0) 2020.05.18
백준 2089번: -2진수  (0) 2020.05.18
백준 1212번: 8진수 2진수  (0) 2020.05.18