μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- νλ‘κ·Έλλ¨Έμ€
- κΉμ΄μ°μ νμ
- λλΉμ°μ νμ
- μκ³ λ¦¬μ¦
- LIS
- db
- μμνμ
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- μμꡬνκΈ°
- μ λ ¬
- DP
- κ·Έλν
- λ³ν©μ λ ¬
- BFS
- μν
- λ°±μ€
- DFS
- ν°μ€ν 리μ±λ¦°μ§
- λ°μ΄ν°λ² μ΄μ€
- SQL
- μ°μ μμν
- ꡬν
- μ€λΈμ
- νμ΄μ¬
- μλ£κ΅¬μ‘°
- κ·Έλννμ
- λ¨Έμ§μνΈ
- 그리λ
- λμ κ³νλ²
- λμ ν©
πππ°πΈ π£πΆπ΅ π΄π΅π¦π’π₯πΊ
[λ°±μ€] 1978λ²: μμ μ°ΎκΈ° - C++ λ³Έλ¬Έ
λ¬Έμ
μ£Όμ΄μ§ μ Nκ° μ€μμ μμκ° λͺ κ°μΈμ§ μ°Ύμμ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫 μ€μ μμ κ°μ Nμ΄ μ£Όμ΄μ§λ€. Nμ 100μ΄νμ΄λ€. λ€μμΌλ‘ Nκ°μ μκ° μ£Όμ΄μ§λλ° μλ 1,000 μ΄νμ μμ°μμ΄λ€.
μΆλ ₯
μ£Όμ΄μ§ μλ€ μ€ μμμ κ°μλ₯Ό μΆλ ₯νλ€.
μμλ₯Ό μ°Ύλ μκ³ λ¦¬μ¦μ μ΄μ©νμ¬ ν μ μλ λ¬Έμ .
μμλ 1λ³΄λ€ ν° μμ°μ μ€ 1κ³Ό μκΈ° μμ λ§μ μ½μλ‘ κ°λ μμ°μλ₯Ό μλ―Ένλ€. 2, 3, 5, 7, 11 .. λ±μ μμ°μκ° μμλ‘ μνλ€.
첫λ²μ§Έλ‘ κ°μ₯ κΈ°λ³Έμ μΈ μμλ₯Ό μ°Ύλ λ°©λ²μ 2λΆν° NκΉμ§μ μλ₯Ό μ‘°μ¬νλ λ°©λ²μ΄λ€. 2λΆν° NκΉμ§μ μ iλ‘ Nμ λλ 보면μ λλ¨Έμ§κ° 0μ΄ λμ€λμ§ νλ³νλ κ²μ΄λ€. 2λΆν° NκΉμ§ λͺ¨λ κ²½μ°μ μλ₯Ό κ³μ°ν΄λ³΄κΈ° λλ¬Έμ μκ°λ³΅μ‘λλ O(N)μ΄ λμ¨λ€.
bool isPrime(int N) {
if(N <= 1) return false; // 1μ μμκ° μλ
for(int i = 2; i < N; i++) {
if(i % N == 0) return false; // νλλΌλ λλ λ¨μ΄μ§λ μκ° μμ κ²½μ° μμκ° μλ
}
return true;
}
λλ²μ§Έ λ°©λ²μ 2λΆν° √NκΉμ§μ μλ§ μ‘°μ¬νλ λ°©λ²μ΄λ€. 첫λ²μ§Έ λ°©λ²κ³Ό κ±°μ λμΌνλ°, λ²μλ§ λ¬λΌμ§λ€.
36μ μλ‘ λ€λ©΄, 36μ μ½μλ 1, 2, 3, 4, 6, 9, 12, 18, 36μ΄λ€. μ¬κΈ°μ √36 = 6 μ κΈ°μ€μΌλ‘ 1 * 36, 2 * 18, 3 * 12, 4 * 9 μ²λΌ κ³±νλ μλ€μ΄ λμΉμ μ΄λ£¨κΈ° λλ¬Έμ κ·Έ μ΄μμ μλ₯Ό κ²μ¬νλ κ²μ μλ―Έκ° μμ΄ μ κ³±κ·ΌκΉμ§μ μλ§ κ²μ¬νλ©΄ λλ€. μκ°λ³΅μ‘λκ° O(√N)μΌλ‘ μμ κ²½μ°λ³΄λ€ ν¨μ¨μ μΈ νΈμ΄λ€.
bool isPrime(int N) {
if(N <= 1) return false; // 1μ μμκ° μλ
for(int i = 2; i * i =< N; i++) {
if(i % N == 0) return false; // νλλΌλ λλ λ¨μ΄μ§λ μκ° μμ κ²½μ° μμκ° μλ
}
return true;
}
μ κ³±κ·Όμ μ²λ¦¬κ° λ²κ±°λ‘κΈ° λλ¬Έμ i * i <= Nκ³Ό κ°μ λ°©λ²μΌλ‘ λ²μλ₯Ό μ§μ ν΄μ€λ€.
λλ²μ§Έ λ°©λ²μΌλ‘ νμ΄νμμΌλ, λ μ€ μ΄λ λ°©λ²μΌλ‘ νμ΄λ μκ΄μλ€.
μ½λ
#include <cstdio>
#include <vector>
using namespace std;
bool IsPrime(int num);
int main(void) {
int n;
scanf("%d", &n);
int result = 0;
for(int i = 0; i < n; i++) {
int temp;
scanf("%d", &temp);
if(IsPrime(temp)) result++;
}
printf("%d\n", result);
return 0;
}
bool IsPrime(int num) {
if(num <= 1) return false;
for(int i = 2; i * i <= num; i++) {
if(num % i == 0)
return false;
}
return true;
}
'μ½λ©ν μ€νΈ μ€λΉ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 6588λ²: 골λλ°νμ μΆμΈ‘ - C++ (0) | 2021.08.22 |
---|---|
[λ°±μ€] 1929λ²: μμ ꡬνκΈ° - C++ (+ μλΌν μ€ν λ€μ€μ 체) (0) | 2021.08.18 |
[λ°±μ€] 1934λ²: μ΅μ곡배μ - C++ (0) | 2021.08.16 |
[λ°±μ€] 2609λ²: μ΅λ곡μ½μμ μ΅μ곡배μ - C++ (0) | 2021.08.15 |
[λ°±μ€] 11004λ²: Kλ²μ§Έ μ - C++ (0) | 2021.08.14 |