void era() {
arr[0] = -1;
arr[1] = -1;
for (ll i = 2; i <= n; ++i) {//long long 으로
arr[i] = i;
}
//체 시작
for (ll i = 2; i <= n; ++i) {//long long 으로
if (arr[i] == i) {
for (ll j = i + i; j <= n; j += i) {//j = i*i 오버플로우 발생 //long long 으로
if (arr[j] == j) {
arr[j] = i;
}
}
}
}
//체에 있는 숫자 중복없이 배열에 담기
for (int i = 0; i <= n; ++i) {//n값이 클 때 크기가 2배씩 커지는 '가변배열' 벡터보다 '고정된 크기'의 배열이 안정적.
if (arr[i] == i) {
r[i] = i;
}
}
}
'알고리즘 > 분류' 카테고리의 다른 글
완전탐색 (0) | 2020.02.28 |
---|---|
LC"S" (0) | 2020.02.25 |
[에라토스테네스의 체] 나의 기본형 (0) | 2020.02.06 |
[이진탐색 알고리즘] , [투 포인터스 알고리즘] 차이 (0) | 2020.02.04 |
세그먼트 트리 (0) | 2020.02.04 |