시간초과 코드. 크흠흠ㅎ
m, n = map(int, input().split())
for elem in range(m, n + 1):
flag = False
if elem == 1:
continue
for elem2 in range(2, (elem//2 + 1)):
if flag:
break
if elem % elem2 == 0:
flag = True
if not flag:
print(elem)
참고해서 맞은 코드
m, n = map(int, input().split())
for elem in range(m, n + 1):
if elem == 1:
continue
for elem2 in range(2, int(elem**0.5)+1):
if elem % elem2 == 0:
break
else:
print(elem)
[첫번째 문제]
조건문 사이에 for문 적용이 가능하다는걸 제대로 인식하지 못했다
if에서 조건이 맞지 않으면 바로 else로 간다고 생각했던 것이 에러였다
그리하여 플래그 덕지덕지
[두번째 문제]
플래그 때문에 시간초과인 줄 알았으나, 제곱근이 아닌 절반 값(약수의 특성)을 기준으로 나누었던 것이 문제..
(elem // 2 +1) -> int(elem**0.5)+1
교환만 해준다면 첫번째 코드도 정답이긴하다..만
수학적 사고력이 부족하다는..것 흠흠
728x90
'프로그래밍 > 알고리즘' 카테고리의 다른 글
(백준) - 2×n 타일링 (Python3) (해설없음) (0) | 2022.07.19 |
---|---|
(백준) - 1, 2, 3 더하기 (Python3) (해설없음) (0) | 2022.07.18 |
(백준) - 수 정렬하기 3 (Python3) (해설없음) (0) | 2022.07.08 |
(백준) - 수 정렬하기 3 (Python3) (해설없음) (0) | 2022.06.30 |
(백준) - 분산처리 (Python3) (해설없음) (0) | 2022.06.29 |