AI 그게 뭔데
끄적끄적 개발일지
AI 그게 뭔데
전체 방문자
오늘
어제
  • 분류 전체보기 (342)
    • 논문 (5)
    • DL(Deep-Learning) (34)
      • 개념 (14)
      • Python 기초 (14)
      • Tensorflow (6)
      • Pytorch (0)
    • NLP (10)
    • OpenCV (53)
    • DevOps (10)
      • AWS (2)
      • Docker & Kubernetes (4)
      • Spark (3)
      • SQL (1)
    • MacOS (1)
    • React-Native (2)
    • BI (3)
      • GA(Google Analytics) (3)
      • Tableau (0)
    • 알고리즘 (221)
      • 백준 (76)
      • 프로그래머스 (108)
      • 기타 알고리즘 (37)

인기 글

태그

  • 백준
  • Python
  • OpenCV
  • LEVEL2
  • 프로그래머스
  • 연습문제
  • 파이썬
  • level1
  • 이코테
  • 알고리즘

최근 글

hELLO · Designed By 정상우.
AI 그게 뭔데

끄적끄적 개발일지

알고리즘/프로그래머스

[프로그래머스] 소수 찾기 - Level 1

2022. 1. 22. 01:04
 

코딩테스트 연습 - 소수 찾기

1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상

programmers.co.kr

 

문제 설명

1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.

소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.
(1은 소수가 아닙니다.)

 

 

제한사항

  • n은 2이상 1000000이하의 자연수입니다.

 

입출력 예

n result
10 4
5 3

 

 

입출력 예 설명

입출력 예 #1

1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환

 

입출력 예 #2

1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환

 

 


✔ Solution

def Prime(n):
    seive = [False, False] + [True] * (n-1) 
    for (i, e) in enumerate(seive): 
        if e: 
            k = i * 2 
            while k <= n: 
                seive[k] = False 
                k += i 
    return len([x for (x, y) in enumerate(seive) if y ])

 

def Prime(n):
    sieve = [True] * (n + 1)
    m = int(n ** 0.5)
    for i in range(2, m + 1):
        if sieve[i] == True:
            for j in range(i + i, n + 1, i):
                sieve[j] = False
    return len([i for i in range(2, n + 1) if sieve[i] == True])

 

부록 : 에라토스테네스의 체

에라토스테네스의 체는 소수의 계산을 조금 더 편하게 하는 방법으로 2부터 시작하는 연속된 자연수를 미리 써 두고,

처음 나타나는 수의 배수들을 모두 지우는 식으로 나아가서 소수만 남기는 방식으로 구한다. 

 

 

✔ Solution 2

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)

 

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] 문자열을 정수로 바꾸기 - Level 1  (0) 2022.01.22
[프로그래머스] 수박수박수박수박수박수? - Level 1  (0) 2022.01.22
[프로그래머스] 서울에서 김서방 찾기 - Level 1  (0) 2022.01.22
[프로그래머스] 문자열 내 마음대로 정렬하기 - Level 1  (0) 2022.01.22
[프로그래머스] 두 정수 사이의 합 - Level 1  (0) 2022.01.22
    AI 그게 뭔데
    AI 그게 뭔데
    공부와 개발 그리고 AI가 약간 첨가된 흔적 남기기

    티스토리툴바