백준 문제풀이
1978번 : 소수 찾기
하다블
2022. 6. 8. 18:46
반응형
문제는 다음과 같습니다.
https://www.acmicpc.net/problem/1978
1978번: 소수 찾기
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
www.acmicpc.net
풀이 코드는 다음과 같습니다.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
bool prime[1001]{false};
prime[0]=true;
prime[1]=true;
for(int i{2};i<sqrt(1001);i++)
{
if(prime[i]==true)
{
continue;
}
else
{
int temp{i};
while(temp<1001)
{
temp+=i;
prime[temp]=true;
}
}
}
int n;
int total{0};
cin>>n;
for(int i{0};i<n;i++)
{
int temp;
cin>>temp;
if(prime[temp]==false)
{
total++;
}
}
cout<<total<<"\n";
return 0;
}
1부터 1000까지의 수가 소수인지 판별한 다음 수를 입력받아 그 수가 소수이면 count 하는 방식으로 처리했습니다.
1부터 1000까지 소수판별은 에라토스테네스의 체를 이용하여 처리했습니다.
반응형