https://programmers.co.kr/learn/courses/30/lessons/12921
def solution(n):
num=set(range(2, n+1))
for i in range(2, n+1):
if i in num:
num-=set(range(2*i, n+1, i))
return len(num)
다른 방법으로 에라토스테네스의 체 사용
def prime_list(n):
sieve = [True] * n
m = int(n ** 0.5)
for i in range(2, m + 1):
if sieve[i] == True:
for j in range(2*i, n, i):
sieve[j] = False
return [i for i in range(2, n) if sieve[i] == True]
def solution(n):
answer = 0
for i in range(2,n+1):
s=0
for j in range(1, n+1):
if i%j==0:
s+=1
if s==2:
answer+=1
return answer
def solution(n):
answer = 1
for i in range(3,n+1):
s=0
if i%2==0:
continue
for j in range(1, n+1):
if i%j==0:
s+=1
if s>2:
continue
if s==2:
answer+=1
return answer
def solution(n):
answer = 0
for i in range(2,n+1):
if i%2==0:
continue
for j in range(2, i):
if i%j==0:
break
else:
answer+=1
return answer
for-else 문: for 문이 중간에 break 등으로 빠져나오지 않고 끝까지 실행됐을 경우 else문을 실행한다