일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- cyworld
- 스탠실 버퍼 사용
- javascript
- react native typescript
- react native accessible
- react native 타입스크립트
- 스탠실 버퍼 튜토리얼
- Expo
- stencil buffer
- react native typescript navigate
- react
- 벡터와 리스트의 차이
- react native mac
- react native typescript navigation
- 리액트 네이티브 맥
- node.js
- react native
- C++
- c++ 정보은닉
- c++ using
- GitHub
- node
- html
- react native ios 기기 연결
- 리액트 네이티브 설치 오류
- unity stencil buffer
- 스탠실 버퍼 시작
- react-native
- 싸이월드
- CSS
Archives
- Today
- Total
혀니의 이거저거 뿌시기
4948 베르트랑 공준 본문
728x90
4948번: 베르트랑 공준
베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼
www.acmicpc.net
import math
import sys
result = 0
lst = []
def isPrime(num):
if num == 1:
return False
elif num == 2:
return True
else:
for j in range(2, int(math.sqrt(num)) + 1):
if num % j == 0:
return False
return True
for i in range(2, 246913):
if isPrime(i) == True:
lst.append(i)
while (1):
n = int(sys.stdin.readline())
result = 0
if n == 0:
break
for i in lst:
if n < i and i <= 2 * n:
result = result + 1
print(result)
징차 어이가없다.....
또 시간초과....
소수 최적화도했고 sys.stdin.readline으로도 바꼈는데 시간초과길래 왜그러나했더니
while문을 돌릴때 for문을 숫자가 크면 큰대로 다~~ 참조하면서 소수인지 참고하는 부분에서 시간초과가 뜸
이를 방지하기 위해서는 처음에 소수를 판별해야하는 범위인 (2, 123456 * 2 + 1) 에서 소수인 숫자들만 배열에 정의를 해놓고
이를 for문에서 해당하는 숫자가 만족하는지 판단해야했다.
범위가 작다면 이를 힌트로 생각하고 가장 큰 수에서 얼마나 오래 걸리는지 판단해 시간을 줄이자.
728x90
'알고리즘 공부(C++)' 카테고리의 다른 글
백준 18258 큐2 (0) | 2022.08.27 |
---|---|
백준 1541 잃어버린 괄호 (0) | 2022.08.27 |
백준 10814 나이순 정렬 (0) | 2022.08.25 |
2798 블랙잭 (0) | 2022.08.24 |
백준 1010 다리놓기 (0) | 2022.08.24 |