- 소수를 찾을때 숫자n에서 반드시 1을 나눠주고, 자기자신을 나눠줄 필요는 없다. 숫자n이 1or자기자신이 아닌경우에 나누어 떨어지는 경우가 있을때는 소수가 아니다. 시간초과남..
프로그래머스 1단계 문제입니다.
- math 라이브러리의 sqrt(number): number의 제곱근, round:반올림을 이용하여 모든 숫자를 탐색하지 않고 제곱근까지만 탐색하게 하였습니다.
제곱근으로 한 이유 12라는 수가있을때 이 수의 약수는 1,2,3,4,6,12이다 이 수를 보면 대칭적으로 곱했을때 12가 나오는걸 볼 수 있다. 그래서 12의 제곱근인 3.xxx를 반올림시키면 4가되는데 이 수를 12의 약수 제곱근 반올림시킨거로 나머지 연산을 해서 소수를 구할 수 있다
import math
def solution(n):
answer = 0
for i in range(2, n+1):
check=True
rootI = round(math.sqrt(i))
for j in range(2, rootI+1):
if i % j == 0:
check=False
break
if check==True:
answer+=1
return answer