🏄♀️ 코딩테스트/🐍 Python
[ 백준 1929 ] 소수 구하기
Po_tta_tt0
2022. 3. 30. 18:02
반응형
문제
처음 코드
m, n = map(int, input().split())
prime = []
for i in range(m,n+1):
isPrime = 0
for j in range(2,i):
if i % j ==0:
isPrime = 0
break
else:
isPrime = 1
if isPrime == 1:
prime.append(i)
for x in prime:
print(x)
시간 초과 에러가 떴다.
그래서 j를 2, (i//2)+1을 돌렸지만
이것 또한 시간 초과 에러가 떴다.
다른 사람들의 코드를 참고한 결과
소수를 구할때는 값을 2로 나눠서 거기까지 돌리는 것보다 제곱근으로 계산하는 것이 효율적이라는 것을 알게 되었다
* 알아둘 기본 개념
16의 제곱근은 4
10의 제곱근은 루트 10
1. 직접 제곱근을 계산하기
number**0.5로 제곱근을 계산할 수 있다.
2. math.sqrt()
import math를 한 후에
math.sqrt(100) 으로 제곱근을 구한다
나는 1번을 이용했다.
맞은 코드
m, n = map(int, input().split())
def isPrime(i):
if i == 1:
return False
else:
for j in range(2,int(i**0.5)+1):
if i % j == 0:
return False
return True
for i in range(m,n+1):
if isPrime(i):
print(i)
반응형