STUDY_SEONMIN
2581. 소수 본문
자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오.
예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다.
소수가 하나도 존재하지 않으면 -1을 출력하세요.
def is_prime(n):
if n == 1:
return False
else:
cnt = 0
for i in range(2, int(n**0.5)+1):
if n % i == 0:
cnt += 1
break
if cnt == 0:
return True
else:
return False
M = int(input())
N = int(input())
prime_nums = []
for num in range(M, N+1):
if is_prime(num):
prime_nums.append(num)
if len(prime_nums) == 0:
print(-1)
else:
print(sum(prime_nums))
print(min(prime_nums))
- 어떤 숫자가 소수인지를 판단하는 is_prime 함수를 만들고 이 함수를 활용해 M부터 N까지의 숫자 중 소수인 숫자들만 리스트에 추가합니다.
- 소수가 1개도 없다면 리스트 안에 데이터가 아무것도 존재하지 않으므로 리스트의 길이가 0이 되니, 이 점을 이용해 소수가 없을 때는 -1 그 외에는 소수들의 합과 최소값을 출력하게 합니다.
'STUDY > Baekjoon Algorithm' 카테고리의 다른 글
1929. 소수 구하기 (0) | 2021.07.14 |
---|---|
11653. 소인수분해 (0) | 2021.07.12 |
1978. 소수 찾기 (0) | 2021.07.12 |
1011. Fly me to the Alpha Centauri (0) | 2021.07.10 |
2839. 설탕 배달 (0) | 2021.07.09 |
Comments