https://www.acmicpc.net/problem/1929
a, b = map(int,input().split())
for i in range(a,b+1):
count=0
if i > 1:
for j in range(2, i):
if i%j ==0:
count+=1
if count==0 :
print(i)
어제 푼걸 활용해서 해봤는데, 값은 다 나오는데 시간초과가 걸렸다.
하나하나 나누기 X 루트를 활용해야함
def sosu(num):
if num ==1:
return False
else:
for i in range(2, int(num**0.5)+1):
if num%i==0:
return False
return True
a, b = map(int, input().split())
for i in range(a, b+1):
if sosu(i):
print(i)
만약 num이 17이면, 2부터 16까지 나누는게 아니라, 루트17까지만 나눠줘도 소수인지 판별이 된다.
이게 무슨 개념인지는 모르겠지만 그렇다고 한다.
이렇게 함수를 만들어서 풀면 해결완료 ~~
'백준 문제풀이 > 수학' 카테고리의 다른 글
[백준] 10872 팩토리얼 - python (0) | 2022.11.15 |
---|---|
[백준] 11653 소인수분해 - python (0) | 2022.11.15 |
[백준] 1978 소수찾기 - python (0) | 2022.11.14 |
[백준] 2089 -2진수 - python (0) | 2022.11.14 |
[백준] 1373 / 1212 2진수 8진수 - python (0) | 2022.11.11 |