티스토리 뷰
### 소수(Prime) ###
: 1보다 크고 약수가 1과 자기자신인 수
< 소수 찾는 방법>
1. 반복문 이용
def prime(x):
#1을 제외하므로 2부터 시작
for i in range(2,x):
#나눠지는지 파악
if x % i == 0:
return False
#시간 복잡도가 x**0.5이기 때문에
if i * i > x:
break
return True
2. ★에라토스테네스의 체★
: 어떤 수를 기준으로 해당 수의 배수를 다 지워가며 소수 찾기
def era_prime(x):
a = [0 for _ in range(x+1)] #a: 소수인 경우 0나타낸다.
p = [] #p: 소수값 저장 list
for i in range(2, x):
#소수인 경우
if a[i] == 0:
p.append(i)
#소수가 아닌 경우
else:
continue
#i의 배수 값들 1로 바꿔주기
for j in range(i **2, x, i):
a[j] = 1
return p
반응형
'알고리즘' 카테고리의 다른 글
파라메트릭 서치(Parametric Search) (0) | 2020.10.16 |
---|---|
소인수 분해 (0) | 2020.08.27 |
최소공배수 (LCM) (0) | 2020.08.27 |
Dijkstra(다익스트라) (0) | 2020.08.27 |
유클리드 호제법(최대 공약수 구하기) (0) | 2020.08.27 |
공지사항
최근에 올라온 글