https://www.acmicpc.net/problem/1929
1929번: 소수 구하기
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
www.acmicpc.net
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 |