BOJ1978
1200 단어 알고리즘에라토스테네스의 체알고리즘
BOJ 1978 소수찾기
문제
코드
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int cnt = n;
int num[100] = {
0,
};
for (int i = 0; i < n; i++)
{
cin >> num[i];
if (num[i] == 1)
cnt--;
}
for (int i = 0; i < n; i++)
{
for (int j = 2; j <= sqrt(num[i]); j++)
{
if (num[i] % j == 0)
{
cnt--;
break;
}
}
}
cout << cnt << endl;
return 0;
}
-
에라토스테네스의 체
0으로 초기화된 배열에 배수의 값들을 1로 바꿔 소수만 판별해낼 수 있는 방법 -
에라토스테네스의 체를 직접 구현하고,
배열에 담긴 1 3 5 7 을 하나씩 비교하면서 소수라고 판별되면 cnt를 증가하는 방법으로 진행하였음 -
에라토스테네스의 체 구현을 확실하게 하지 못해서, segmentation fault오류가 자꾸 났었다.
-
내가한 방법
1로 초기화된 배열에서ch[i * 2] = 0;
Author And Source
이 문제에 관하여(BOJ1978), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@aksel26/BOJ1978저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)