반응형
n=int(input())
m=int(input())
def is_prime_num(n):
arr = [True] * (n + 1) # 특정 수가 지워졌는지 아닌지 확인하기 위한 배열
arr[0] = False
arr[1] = False
for i in range(2, n + 1):
if arr[i] == True: # 특정 수가 지워지지 않았다면 (소수여서)
j = 2
while (i * j) <= n:
arr[i*j] = False # i의 배수의 값을 False로 지워준다.
j += 1
return arr
arr = is_prime_num(m) # 0 ~ 50중 소수를 구하기 위한 함수
for i in range(len(arr)):
if n<3:
continue
if arr[i] == True:
print(i, end=' ')
인터넷에 비슷한 알고리즘을 검색해서 제출하였다.
문제는 런타임에러
이유는 소수를 구할때 제곱근까지만 구해도 되기때문이다.
그래서 수정된 코드를 보았다.
m,n=map(int,input().split())
for i in range(m,n+1):
if i==1:#1은 소수가 아니므로 제외
continue
for j in range(2,int(i**0.5)+1):
if i%j==0: #약수가 존재하므로 소수가 아님
break #더이상 검사할 필요가 없으므로 멈춤
else:
print(i)
int(i**0.5)라는 부분이 보일 것이다.
이것으로 제곱근을 구한뒤 제곱긑까지만 계산을 시킨것이다.
반응형
'백준' 카테고리의 다른 글
1065백준 (0) | 2024.02.16 |
---|---|
백준 10815번 (1) | 2024.01.31 |
행렬의 곱 구현코드 리스트버전 (1) | 2024.01.08 |
행렬의 곱셈 백준2740 (1) | 2024.01.08 |
input관련 정리 (1) | 2024.01.08 |