😎 κ³΅λΆ€ν•˜λŠ” μ§•μ§•μ•ŒνŒŒμΉ΄λŠ” μ²˜μŒμ΄μ§€?

[이것이 μ½”λ”© ν…ŒμŠ€νŠΈλ‹€ with Python]_37_기타 μ•Œκ³ λ¦¬μ¦˜_μ†Œμˆ˜ νŒλ³„ μ•Œκ³ λ¦¬μ¦˜ λ³Έλ¬Έ

πŸ¦₯ μ½”ν…Œ/이것이 μ½”λ”© ν…ŒμŠ€νŠΈλ‹€ with python

[이것이 μ½”λ”© ν…ŒμŠ€νŠΈλ‹€ with Python]_37_기타 μ•Œκ³ λ¦¬μ¦˜_μ†Œμˆ˜ νŒλ³„ μ•Œκ³ λ¦¬μ¦˜

μ§•μ§•μ•ŒνŒŒμΉ΄ 2022. 2. 13. 00:57
728x90
λ°˜μ‘ν˜•

220213 μž‘μ„±

<λ³Έ λΈ”λ‘œκ·ΈλŠ” γ€Žμ΄κ²ƒμ΄ 취업을 μœ„ν•œ μ½”λ”© ν…ŒμŠ€νŠΈλ‹€γ€ μ˜ 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)

 

 

 

 

 

728x90
λ°˜μ‘ν˜•
Comments