티스토리 뷰
https://www.acmicpc.net/problem/1016
import math
a,b =map(int,input().split())
# 제곱수 구하기
array = [i**2 for i in range(2,int(math.sqrt(b))+1)]
#a부터 b까지의 배열을 생성
check = [1 for _ in range(a,b+1)]
for i in array:
num = a//i
while num * i <= b:
# num*i가 a와 b 범위안에 있을 경우
if a <= num*i <= b:
#0으로 설정
check[num*i-a] = 0
num+=1
print(sum(check))
에라토스테네스의 체 알고리즘
사용 시 시간초과..
b이하의 제곱수를 구한 뒤,
a와 b사이의 제곱수의 배수 들을 0 표시
a부터b의 값을 모두 더한 값이
제곱ㄴㄴ 수
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 감정 일기장
- BFS
- Redux
- SEB 43기
- dfs
- dictionary
- 인적성
- 다이나믹 프로그래밍
- React quill
- 코드스테이츠
- seb
- SEB43기
- 프리프로젝트
- 프로젝트
- 백준
- 감정일기장
- 프로그래머스
- 회고
- 그리디 알고리즘
- Python
- 기술면접
- 브루드포스
- 개인 프로젝트
- 코테
- 스택오버플로우
- til
- useContext
- 프론트엔드
- SEB43
- SEB 43
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함