[λ°±μ€/C++] 4948λ² : λ² λ₯΄νΈλ 곡μ€
λ¬Έμ
λ² λ₯΄νΈλ 곡μ€μ μμμ μμ°μ nμ λνμ¬, nλ³΄λ€ ν¬κ³ , 2nλ³΄λ€ μκ±°λ κ°μ μμλ μ μ΄λ νλ μ‘΄μ¬νλ€λ λ΄μ©μ λ΄κ³ μλ€. μ΄ λͺ μ λ μ‘°μ ν λ² λ₯΄νΈλμ΄ 1845λ μ μΆμΈ‘νκ³ , ννλν° μ²΄λΉμΌνκ° 1850λ μ μ¦λͺ νλ€.
μλ₯Ό λ€μ΄, 10λ³΄λ€ ν¬κ³ , 20λ³΄λ€ μκ±°λ κ°μ μμλ 4κ°κ° μλ€. (11, 13, 17, 19) λ, 14λ³΄λ€ ν¬κ³ , 28λ³΄λ€ μκ±°λ κ°μ μμλ 3κ°κ° μλ€. (17,19, 23)
μμ°μ nμ΄ μ£Όμ΄μ‘μ λ, nλ³΄λ€ ν¬κ³ , 2nλ³΄λ€ μκ±°λ κ°μ μμμ κ°μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
μ λ ₯μ μ¬λ¬ κ°μ ν μ€νΈ μΌμ΄μ€λ‘ μ΄λ£¨μ΄μ Έ μλ€. κ° μΌμ΄μ€λ nμ ν¬ν¨νλ ν μ€λ‘ μ΄λ£¨μ΄μ Έ μλ€.
μ λ ₯μ λ§μ§λ§μλ 0μ΄ μ£Όμ΄μ§λ€.
μΆλ ₯
κ° ν μ€νΈ μΌμ΄μ€μ λν΄μ, nλ³΄λ€ ν¬κ³ , 2nλ³΄λ€ μκ±°λ κ°μ μμμ κ°μλ₯Ό μΆλ ₯νλ€.
μ ν
- 1 ≤ n ≤ 123,456
νμ΄
- μ λ ₯μ΄ 0μΌ λ μ λ ₯ μ’ λ£
- N μ΄κ³Ό 2N μ΄ν
μμ λ 쑰건μ μκ°νλ©΄ μ§λ λ¬Έμ μ λΉμ·ν λ°©λ²μΌλ‘ ν μ μλ€.
#include <iostream>
#include <cmath>
using namespace std;
int MAX = 123456*2;
int main() {
int N=-1, cnt = 0, limit;
bool isPrime[MAX+1];
while (true){
cin >> N;
if (N == 0)
break;
fill_n(isPrime, MAX+1, true);
isPrime[0] = false;
isPrime[1] = false;
for (int i=2; i<=sqrt(2*N); i++){
if (isPrime[i]){
for (int j=2*i; j<=2*N; j+=i){
if (2*N > MAX + 1)
break;
isPrime[j] = false;
}
}
}
for (int i = N+1; i<=2*N; i++){
if (isPrime[i])
cnt += 1;
}
cout << cnt << "\n";
cnt = 0;
}
}
https://www.acmicpc.net/problem/4948
4948λ²: λ² λ₯΄νΈλ 곡μ€
λ² λ₯΄νΈλ 곡μ€μ μμμ μμ°μ nμ λνμ¬, nλ³΄λ€ ν¬κ³ , 2nλ³΄λ€ μκ±°λ κ°μ μμλ μ μ΄λ νλ μ‘΄μ¬νλ€λ λ΄μ©μ λ΄κ³ μλ€. μ΄ λͺ μ λ μ‘°μ ν λ² λ₯΄νΈλμ΄ 1845λ μ μΆμΈ‘νκ³ , ννλν° μ²΄λΉμΌ
www.acmicpc.net