기초적인 수학적 알고리즘의 코드를 모아놓은 간단한 포스팅이다! 소수를 구하는 알고리즘과 최대공약수를 구하는 알고리즘!
1. 에라토스테네스의 체
- 소수를 구하는 알고리즘
- 특정 배수를 지워가는 식으로 전개된다.
def era(n):
"""
Input : 몇까지 탐색할지
Output : n까지 숫자 중 소수를 포함한 리스트
"""
a = [False, False] + [True] * (n-1)
primes = []
for i in range(2, n+1):
if a[i]:
primes.append(i)
for j in range(2*i, n+1, i):
a[j] = False # 배수를 지운다!
return primes
2. 유클리드 호제법
- 최대공약수, 최소공배수 구하기
- 유클리드 호제법은 최대공약수를 구하는 알고리즘이다!
def gcd(n, m):
"""
Input : 두 수
Output : 두 수의 최대공약수
"""
while m :
n, m = m, n%m
return n
3. 관련 문제
1978 소수 찾기 https://www.acmicpc.net/problem/1978
1929 소수 구하기 https://www.acmicpc.net/problem/1929
2609 최대공약수와 최소공배수 https://www.acmicpc.net/problem/2609
반응형
'Algorithms 💻 > Basic' 카테고리의 다른 글
[알고리즘] Kadane’s(카데인) Algorithm - Array에서 부분합의 최대 찾기 (0) | 2023.01.18 |
---|---|
[알고리즘] 백트래킹(Backtracking)을 알아보자 (0) | 2022.04.05 |
[알고리즘] 특정 기준으로 리스트 정렬하기 (python) - key=lambda (0) | 2022.03.27 |
[코테] 자주 쓰이는 Python 기본 함수 정리 (계속 업데이트) (2) | 2022.03.26 |
[알고리즘] 큐를 이용해 BFS 구현하기 (python) (0) | 2022.03.21 |