인프런 커뮤니티 질문&답변
이렇게 하면 왜 오류가 나는 건지 알 수 있을까요?!
작성
·
188
0
n = int(input())
a = [0]*(n+1)
cnt = 0
for i in range(2, n+1):
if a[i] == 0:
cnt += 1
for j in range(i+1, n+1):
if j % i == 0:
a[j] = 1
print(cnt)
답변 1
0
김태원
지식공유자
코드가 비효율적이라 타임리밋이 나는 코드입니다.
j for문이 1씩 증가하면서 j값 중에서 i의 배수를 찾는 것은 엄청 비효율적이라 타임리밋이 나는 것입니다.
for문은 for(start, stop, step) 으로 3개의 인자를 가질 수 있습니다. j for문을 step값을 사용하는 for문으로 생각해보세요.





