728x90
문제) M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.
a, b = map(int,input().split())
for i in range(a, b+1):
if i == 1: # 1은 소수가 아니므로 제외
continue
for j in range(2,int(i**0.5)+1): # i**0.5는 제곱근을 의미
if i % j == 0: # 약수가 존재하므로 소수가 아님
break # 더이상 검사할 필요가 없으므로 멈춤
else:
print(i)
이번 문제는 a, b를 입력하고, 반복문을 통해 a 부터 b+1까지 반복한다.
1은 소수가 아니므로 continue를 써 통과하도록 하였다.
두번째 반복문은 소수에 대한 정의가 나온다.
2부터 i의 제곱근까지 나눠떨어지는 숫자는 소수가 아니다.
이것을 이용하여 소수를 구하는 코딩을 하였다.
이해가 안되시거나 틀린 정보는 댓글로 알려주시면 감사하겠습니다!
728x90
'알고리즘 > 백준 - 파이썬' 카테고리의 다른 글
백준) 4849번 베르트랑 공준 문제 (파이썬) (0) | 2022.07.20 |
---|---|
백준) 1934번 최소공배수 문제 (파이썬) (0) | 2022.07.19 |
백준) 16170번 오늘의 날짜는? 문제 (파이썬) (0) | 2022.07.18 |
백준) 6749번 Next in line 문제 (파이썬) (0) | 2022.07.14 |
백준) 2581번 소수 문제 (파이썬) (0) | 2022.07.12 |
댓글