문제 / 소수 개수 출력하기 (에라토스테네스 체) / Python

2022. 3. 31. 17:36·coding test - python/기본기 문제
728x90
반응형

 

문제 제목: 소수 개수 출력하기 (에라토스테네스 체)

자연수 N이 입력되면 1부터 N까지의 소수의 개수를 출력하는 프로그램을 작성하세요.

만약 20이 입력되면 1부터 20까지의 소수는 2, 3, 5, 7, 11, 13, 17, 19로 총 8개입니다.

제한시간은 1초입니다.

 

▣ 입력설명

 

첫 줄에 자연수의 개수 N(2<=N<=200,000)이 주어집니다.

 

▣ 출력설명

 

첫 줄에 소수의 개수를 출력합니다.

 

▣ 입력예제 

 

20

 

▣ 출력예제 

 

8

 

 


풀이

n = int(input())
sosu = [0]*(n+1)
cnt = 0

for  i in range(2,n+1):
    if sosu[i] == 0: 
        cnt += 1 #소수의 개수

    for j in range(i,n+1,i): #i의 배수는 1을 저장 (에라토스테네스 체)
        sosu[j] = 1
        

print(cnt)

 

*에라토스테네스의 체:

리스의 수학자이자 지리학자인 에라토스테네스가 고안한 소수(素數)를 찾는 방법으로, 이 방법으로 소수를 찾으려면, 2부터 시작해 자연수를 차례로 쓴 다음, 2 이외의 2의 배수, 3 이외의 3의 배수, 5 이외의 5의 배수의 순서로 수를 지워나가 끝에 남는 수가 소수이다.

 

[네이버 지식백과] 에라토스테네스의 체 [Eratosthenes' sieve] (두산백과 두피디아, 두산백과)

 

위의 풀이는 배수에 1을 저장하여 소수는 0을 가진 값을 출력하는 방식으로 에라토스테네스의 체를 이용하였다.

 


※ 알아야 할 것

- 소수를 찾으려면 자연수의 배수를 지워나가면 된다.

 

728x90
반응형

'coding test - python > 기본기 문제' 카테고리의 다른 글

문제 / 뒤집은 소수 / Python  (0) 2022.03.31
문제 / 자릿수의 합 / Python  (0) 2022.03.31
문제 / 정다면체 / Python  (0) 2022.03.31
문제 / 대푯값 / Python  (0) 2022.03.31
문제 / K번째 큰 수 / Python  (0) 2022.03.30
'coding test - python/기본기 문제' 카테고리의 다른 글
  • 문제 / 뒤집은 소수 / Python
  • 문제 / 자릿수의 합 / Python
  • 문제 / 정다면체 / Python
  • 문제 / 대푯값 / Python
sillon
sillon
꾸준해지려고 합니다..
    반응형
  • sillon
    sillon coding
    sillon
  • 전체
    오늘
    어제
    • menu (614)
      • notice (2)
      • python (68)
        • 자료구조 & 알고리즘 (23)
        • 라이브러리 (19)
        • 기초 (8)
        • 자동화 (14)
        • 보안 (1)
      • coding test - python (301)
        • Programmers (166)
        • 백준 (76)
        • Code Tree (22)
        • 기본기 문제 (37)
      • coding test - C++ (5)
        • Programmers (4)
        • 백준 (1)
        • 기본기문제 (0)
      • 공부정리 (5)
        • 신호처리 시스템 (0)
        • Deep learnig & Machine lear.. (41)
        • Data Science (18)
        • Computer Vision (17)
        • NLP (40)
        • Dacon (2)
        • 모두를 위한 딥러닝 (강의 정리) (4)
        • 모두의 딥러닝 (교재 정리) (9)
        • 통계 (2)
      • HCI (23)
        • Haptics (7)
        • Graphics (11)
        • Arduino (4)
      • Project (21)
        • Web Project (1)
        • App Project (1)
        • Paper Project (1)
        • 캡스톤디자인2 (17)
        • etc (1)
      • OS (10)
        • Ubuntu (9)
        • Rasberry pi (1)
      • App & Web (9)
        • Android (7)
        • javascript (2)
      • C++ (5)
        • 기초 (5)
      • Cloud & SERVER (8)
        • Git (2)
        • Docker (1)
        • DB (4)
      • Paper (7)
        • NLP Paper review (6)
      • 데이터 분석 (0)
        • GIS (0)
      • daily (2)
        • 대학원 준비 (0)
      • 영어공부 (6)
        • job interview (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    programmers
    백준
    Python
    소수
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
sillon
문제 / 소수 개수 출력하기 (에라토스테네스 체) / Python
상단으로

티스토리툴바