강의로 돌아가기
큼큼 ,,

파이썬 시간초과...

어떻게하면 시간을 더 줄일 수 있을까요...

작성중인 코드―solution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
def solution(n):
    count=0
    for i in range(2,n+1):
        소수=True
        for j in range(2, i):
            if i%j==0:
                소수=False
                break

        if 소수==True:
            count+=1

    return count
1 개의 답변
YeEun Kim

1. n이라는 수가 소수인지 판별할 때 반드시 2부터 n-1까지 다 나누어 볼 필요는 없습니다. 자기 자신을 제외하고 나올 수 있는, 가장 큰 나누어 떨어지는 수는...

2. 어떤 수가 (2가 아닐 때) 짝수이면 시간을 많이 들여 소수 판별을 할 필요도 없이 소수가 아니라는 것을 바로 알 수 있습니다.

문과생이 꽤 많은 시행착오 끝에 알아낸 팁을 공유합니다ㅠㅜ ㅎㅇㅌ

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.