π 곡λΆνλ μ§μ§μνμΉ΄λ μ²μμ΄μ§?
[μ΄κ²μ΄ μ½λ© ν μ€νΈλ€ with Python]_37_κΈ°ν μκ³ λ¦¬μ¦_μμ νλ³ μκ³ λ¦¬μ¦ λ³Έλ¬Έ
[μ΄κ²μ΄ μ½λ© ν μ€νΈλ€ with Python]_37_κΈ°ν μκ³ λ¦¬μ¦_μμ νλ³ μκ³ λ¦¬μ¦
μ§μ§μνμΉ΄ 2022. 2. 13. 00:57220213 μμ±
<λ³Έ λΈλ‘κ·Έλ γμ΄κ²μ΄ μ·¨μ μ μν μ½λ© ν μ€νΈλ€γ μ youtubeλ₯Ό μ°Έκ³ ν΄μ 곡λΆνλ©° μμ±νμμ΅λλ€>
https://www.youtube.com/watch?v=CyINCmJPjfM&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=37
1. μμ (Prime Number)
: 1λ³΄λ€ ν° μμ°μ μ€μμ 1κ³Ό μκΈ° μμ μ μ μΈν μμ°μ
: λλμ΄λ¨μ΄μ§μ§ μλ μμ°μ
ex) 7μ 1, 7 λ§κ³ λλμ΄λ¨μ΄μ§μ§ μμλ―λ‘ μμ!
- python
import math
# μμ νλ³ ν¨μ ( 2μ΄μ μμ°μ)
def is_prime_number(x):
# 2λΆν° (x-1)κΉμ§μ λͺ¨λ μ νμΈ
for i in range(2,x):
# xκ° ν΄λΉ μλ‘ λλμ΄λ¨μ΄μ§λ€λ©΄
if x % i == 0:
return False # μμκ° μλ
return True # μμμ
print(is_prime_number(4)) # 4λ μμκ° μλ
print(is_prime_number(7)) # 7μ μμμ
- c++
#include <bits/stdc++.h>
using namespace std;
// μμ νλ³ ν¨μ(2μ΄μμ μμ°μμ λνμ¬)
bool isPrimeNumber(int x) {
// 2λΆν° (x-1) κΉμ§μ λͺ¨λ μ νμΈνλ©°
for (int i = 2; i < x ; i++) {
// xκ° ν΄λΉ μλ‘ λλμ΄λ¨μ΄μ§λ€λ©΄
if (x % i == 0) {
return false; // μμκ° μλ
}
}
return true; // μμμ
}
int main() {
cout << isPrimeNumber(4) << '\n';
cout << isPrimeNumber(7) << '\n';
- java
import java.util.*;
class Main {
// μμ νλ³ ν¨μ(2μ΄μμ μμ°μμ λνμ¬)
public static boolean isPrimeNumber(int x) {
// 2λΆν° (X-1) κΉμ§μ λͺ¨λ μ νμΈνλ©°
for (int i = 2; i < x ; i++) {
// xκ° ν΄λΉ μλ‘ λλμ΄λ¨μ΄μ§λ€λ©΄
if (x % i == 0) {
return false; // μμκ° μλ
}
}
return true; // μμμ
}
public static void main(String[] args) {
System.out.println(isPrimeNumber(4));
System.out.println(isPrimeNumber(7));
}
}
=> 2λΆν° x-1 κΉμ§μ λͺ¨λ μμ°μμ λν΄ μ°μ° μν
=> λͺ¨λ μλ₯Ό νλμ© νμΈνλ€λ μ μμ μκ° λ³΅μ‘λλ O(X)
2. μ½μμ μ±μ§
: λͺ¨λ μ½μκ° κ°μ΄λ° μ½μλ₯Ό κΈ°μ€μΌλ‘ κ³±μ μ°μ°μ λμΉμ μ΄λ£¨λ κ²!
EX) 16μ μ½μλ 1, 2, 4, 8, 16
=> νΉμ ν μμ°μμ λͺ¨λ μ½μλ₯Ό μ°Ύμ λ κ°μ΄λ° μ½μ(μ κ³±κ·Ό)κΉμ§λ§ νμΈνλ©΄λ¨!
+) μμμ νλ³ ( κ°μ λ μκ³ λ¦¬μ¦)
- python
import math
# μμ νλ³ ν¨μ
def is_prime_number(x):
# 2λΆν° xμ μ κ³±κ·ΌκΉμ§μ λͺ¨λ μλ₯Ό νμΈνλ©°
for i in range(2, int(math.sqrt(x)) + 1):
# xκ° ν΄λΉ μλ‘ λλμ΄λ¨μ΄μ§λ€λ©΄
if x % i == 0:
return False # μμκ° μλ
return True # μμμ
print(is_prime_number(4)) # 4λ μμκ° μλ
print(is_prime_number(7)) # 7μ μμμ
- c++
#include <bits/stdc++.h>
using namespace std;
// μμ νλ³ ν¨μ(2μ΄μμ μμ°μμ λνμ¬)
bool isPrimeNumber(int x) {
// 2λΆν° xμ μ κ³±κ·ΌκΉμ§μ λͺ¨λ μλ₯Ό νμΈνλ©°
for (int i = 2; i <= (int) sqrt(x); i++) {
// xκ° ν΄λΉ μλ‘ λλμ΄λ¨μ΄μ§λ€λ©΄
if (x % i == 0) {
return false; // μμκ° μλ
}
}
return true; // μμμ
}
int main() {
cout << isPrimeNumber(4) << '\n';
cout << isPrimeNumber(7) << '\n';
}
- java
import java.util.*;
class Main {
// μμ νλ³ ν¨μ(2μ΄μμ μμ°μμ λνμ¬)
public static boolean isPrimeNumber(int x) {
// 2λΆν° xμ μ κ³±κ·ΌκΉμ§μ λͺ¨λ μλ₯Ό νμΈνλ©°
for (int i = 2; i <= Math.sqrt(x); i++) {
// xκ° ν΄λΉ μλ‘ λλμ΄λ¨μ΄μ§λ€λ©΄
if (x % i == 0) {
return false; // μμκ° μλ
}
}
return true; // μμμ
}
public static void main(String[] args) {
System.out.println(isPrimeNumber(4));
System.out.println(isPrimeNumber(7));
}
}
=> 2λΆν° Xμ μ κ³±κ·Ό (μμμ μ΄ν 무μ) κΉμ§μ λͺ¨λ μμ°μμ λν΄ μ°μ° μν
=> μκ° λ³΅μ‘λλ O(N^1/2)