Python으로 구현한 2581번 소수 문제 풀이입니다.
https://www.acmicpc.net/problem/2581
m = int(input())
n = int(input())
result = 0
min = 0
for i in range(m, n + 1) :
flag = 0
if i == 1 :
continue
for j in range(2, i) :
if i % j == 0 :
flag = 1
break
if flag == 0 :
if min == 0 :
min = i
result += i
if result != 0 :
print(result)
print(min)
else :
print(-1)
입력받을 자연수 m과 n, 소수 값들 중 최솟값을 담을 변수 min, 소수인 것을 모두 더한 변수 result 를 선언한다.
중첩 반복문을 활용하는데, 첫번째 반복문은 입력받은 자연수 m부터 n까지 수행되도록 한다.
만약 해당 값이 1이라면 넘어가도록 하고, 두번째 반복문에서는 2부터 i까지 수행하고 소수가 아니라면 변수 count에
1을 할당하고 두번째 반복문을 빠져나오도록 한다.
두번째 반복문이 끝난 후 변수 count의 값이 0이라면 소수로 판단되기 때문에 변수 result에 해당 값을 누적해간다.
추가적으로 최솟값을 도출하기 위해 변수 min의 값이 0일 경우에만 해당 값을 할당한다. 즉, 가장 먼저 나온 소수값을
할당하는 것이다.
최종적으로 합(result)과 최솟값(min)을 출력하고, 소수가 없을 경우는 -1을 출력한다.
'백준(Python) 풀이 > 수학' 카테고리의 다른 글
백준(Python) 5543번 상근날드 풀이 (0) | 2021.10.06 |
---|---|
백준(Python) 2748번 피보나치 수 2 풀이 (0) | 2021.10.06 |
백준(Python) 2609번 최대공약수와 최소공배수 풀이 (0) | 2021.10.06 |
백준(Python) 1085번 직사각형에서 탈출 풀이 (0) | 2021.10.06 |
백준(Python) 1929번 소수 구하기 풀이 (0) | 2021.10.06 |