작성
·
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)