Eat the ENAK
BOJ2581 - 소수 본문
문제 바로가기
https://www.acmicpc.net/problem/2581
Solved.ac* 난이도
* Solved.ac는 백준 온라인 저지의 문제들에 난이도를 매겨주는 서비스입니다. 자세한 내용은 홈페이지를 참고해주세요.
본문
해설
https://github.com/return0927/CodingWrite-UP/blob/master/BOJ/2581/2581.py
소수 판별법(\(O(\sqrt{n})\))에 대한 내용은 이전 글에 자세히 설명해두었다.
2019/10/29 - [PS: Problem Solving/BOJ: 백준온라인저지] - BOJ1929 - 소수 구하기
이후 한 줄로 주어진 폐구간 \([m, n]\)를 받고 그 사이의 소수들을 모두 구해준다.
# 1 <= under, over <= 10000
under, over = int(input()), int(input())
primes = [*filter(lambda x: check_prime(x), [*range(under, over + 1)])]
[*range(under, over+1)]하면 폐구간 \([m, n]\)의 정수 원소를 뿌려준다. 그리고 내장함수인 filter를 이용해 check_prime(x) 값이 True인 원소만 빼내주면 된다. 이 때, filter함수는 iterable 객체를 리턴하기 때문에 [filter(....)]하면 [<iterable>]이 되기 때문에 오류이다. 키워드 *를 넣어주어 iterable의 값을 모두 꺼내주자.
그래서 만약 리스트 primes가 bool True이면 구간 안의 소수의 합과 최소의 소수를 출력하고, bool False이면 -1를 출력하자.
if primes:
print(sum(primes))
print(primes[0])
else:
print(-1)
'PS: Problem Solving > BOJ: 백준온라인저지' 카테고리의 다른 글
BOJ2798 - 블랙잭 (0) | 2019.10.29 |
---|---|
BOJ1978 - 소수 찾기 (0) | 2019.10.29 |
BOJ1929 - 소수 구하기 (0) | 2019.10.29 |
BOJ1085 - 직사각형에서 탈출 (0) | 2019.10.29 |
BOJ3009 - 네 번째 점 (0) | 2019.10.29 |
Comments