[백준] 4948번 베르트랑 공준 (Python)

2021. 3. 12. 23:15·알고리즘/백준
728x90
반응형

문제

www.acmicpc.net/problem/4948

 

4948번: 베르트랑 공준

베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼

www.acmicpc.net

 

코드

import math

result=[]

def c(a,b):
    cnt=0
    check = [True] * (b+1) 
    
    for i in range(2,int(math.sqrt(b)+1)):
        if check[i] == True:
            for j in range(i*2, b+1, i):
                check[j] = False
    
    for i in range(a+1,b+1): # a보다 크고 b보다 작은 수를 구하기 때문에 3<x<7 x=4,5,6 3개
        if check[i] == True:
            cnt += 1
    return cnt

while True:
    a=int(input())
    if a==0:
        break
    result.append(c(a,2*a))
    


for i in result:
    print(i)

 

코드설명

입력된 수를 a라 하면 a 보다 크고 2a 작은 소수의 개수를 찾는 문제이다.

결국 소수구하기 문제인데 에라토스테네스의 체를 안쓰게되면 시간초과가 나기때문에 에라토스테네스의 체를 이용하여 풀었다. 

 

2부터 2a에 제곱근까지 for문을 돌리고 check가 true인 상태일때만 for문을 돌려 2,3,5 ... 배수들은 소수가 아니기 때문에 모두 false로 만들어 준다.

 

그리고 a~2a까지 True인 경우가 소수이다.

 

반응형
저작자표시 (새창열림)

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 9184번 신나는 함수 실행 (Python)  (0) 2021.03.13
[백준] 1436번 영화감독 숌 (Python)  (0) 2021.03.12
[백준] 1011번 Fly me to the Alpha Centauri (Python)  (1) 2021.03.12
[백준] 2839번 설탕배달 (Python)  (0) 2021.03.12
[백준] 1316번 그룹단어체커 (Python)  (0) 2021.03.12
'알고리즘/백준' 카테고리의 다른 글
  • [백준] 9184번 신나는 함수 실행 (Python)
  • [백준] 1436번 영화감독 숌 (Python)
  • [백준] 1011번 Fly me to the Alpha Centauri (Python)
  • [백준] 2839번 설탕배달 (Python)
wookcode
wookcode
공부한 내용들을 정리하고 기록하는 블로그입니다.
    반응형
  • wookcode
    wookcode
    wookcode
  • 전체
    오늘
    어제
    • 카테고리 (196) N
      • study (1) N
        • 아파치 카프카 애플리케이션 프로그래밍 with 자.. (0)
        • 인프런 (1) N
      • Live Study (15)
      • Programming (14)
        • Java (8)
        • Python (1)
        • Springboot (5)
        • MSA (0)
      • 알고리즘 (117)
        • 백준 (58)
        • 프로그래머스 (59)
      • 에러로그 (5)
      • 항해99 (23)
      • 면접 (1)
      • 프로젝트 (1)
      • CS (19)
        • 네트워크 (2)
        • 운영체제 (2)
        • 데이터베이스 (2)
        • 컴퓨터구조 (1)
        • Java (8)
        • Spring (4)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    후기
    해결
    김영한
    조합
    알고리즘
    인프런
    orm
    SFlash
    카카오코딩테스트
    에러
    괄호
    spring
    그리디
    항해99
    실전프로젝트
    버그
    회고
    SpringBoot
    항해마켓
    스파르타코딩클럽
    카카오인턴
    java
    코딩테스트
    브루트포스
    프로그래머스
    jpa
    백준
    정리
    미니프로젝트
    파이썬
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
wookcode
[백준] 4948번 베르트랑 공준 (Python)
상단으로

티스토리툴바