
33
1
장
고성능 파이썬 이해하기
for
i
in
range(2, int(sqrt_number) + 1):
if
(number / i).is_integer():
return
False
return
True
print
(f
"
check_prime(10,000,000) = {check_prime(10_000_000)}
"
)
# check_prime(10,000,000) = False
print
(f
"
check_prime(10,000,019) = {check_prime(10_000_019)}
"
)
# check_prime(10,000,019) = True
앞서 설명한 컴퓨터의 추상 모델을 사용해서 위 코드를 분석한 다음 파이썬에서 실행했을 때
벌어지는 일과 비교해보자. 추상 모델이므로 최적화된 컴퓨터와 파이썬이 코드를 실행하는 방
식의 미묘한 부분은 일단 무시하자. 알고리즘의 일반적인 구성 요소를 파악하고 해법을 위한
컴퓨팅 구성 요소들의 최적 조합을 고민하는 방식은 문제를 풀기 전에 해볼 수 있는 좋은 연습
이다. 이상적인 상황과 파이썬 내부에서 실제로 어떤 일이 일어나는지를 이해한다면 파이썬 코
드를 점점 최적에 가까운 상태로 끌어올릴 수 있다.
이상적인 컴퓨팅
앞의 코드를 실행하면
number
가
RAM
에 저장된다.
sqrt
_
number
를 계산하려면 이 값을
CPU
로 보내야 ...