인프런 커뮤니티 질문&답변

xorwn12345님의 프로필 이미지
xorwn12345

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

리미트 타임에러

작성

·

232

0

소수 개수 구하기 문제

언어 : 파이썬

내용: 제가 작성한 하위 코드 for문 두 개 돌렸을뿐인데 리미트 타임에러가 뜹니다..

구글링 해서 emurate함수 써서 푼 문제는 정답이라고 뜹니다.

난이도 초급에 emurate함수 방식으로 써서 풀라는 의도는 아니라고 판단되어 문의 드립니다. 아래 코드가 에러인지, 제가 잘 못하고 있는지 궁금합니다.

(입사 전에는 자바로 면접 보고 들어갔는데 입사 한 회사에서 사용하는 언어는 파이썬이라서 파이썬으로 코테 풀고 있는점도 참고해서 피드백 부탁드립니다)

 

received_data = int(input())

list = []

for i in range(2,received_data+1):

list.append(0)

for i in range(2,received_data+1):

if list[i-2]==0:

for j in range(2,received_data+1):

if j>i and j%i==0:

list[j-2]=1

print(list.count(0))

 

 

답변 1

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, n+1, i):
            a[j]=1

print(cnt)
xorwn12345님의 프로필 이미지
xorwn12345

작성한 질문수

질문하기