Python으로 구현한 1977번 완전제곱수 문제 풀이입니다.
https://www.acmicpc.net/problem/1977
import math
m = int(input())
n = int(input())
result = []
for i in range(m, n + 1) :
if int(math.sqrt(i)) ** 2 == i :
result.append(i)
if result :
print(sum(result))
print(min(result))
else :
print(-1)
m과 n을 입력받고 입력받은 수를 바탕으로 반복문의 범위를 지정하여 수행한다.
그 내부에서는 다시 조건문을 통해 해당 값의 제곱근을 정수형으로 변환한 뒤 다시 제곱한 값이 해당 값과 같을 경우
완전제곱수이기 때문에 리스트 result에 담는다.
반복문이 끝난 후 리스트 result에 담긴 완전제곱수가 없을 경우 -1을 출력하고 반대로 완전제곱수가 존재할 경우에는
완전제곱수들의 합과 최솟값을 출력한다.
'백준(Python) 풀이 > 수학' 카테고리의 다른 글
백준(Python) 10162번 전자레인지 풀이 (0) | 2021.10.12 |
---|---|
백준(Python) 10610번 30 풀이 (0) | 2021.10.12 |
백준(Python) 6588번 골드바흐의 추측 풀이 (0) | 2021.10.12 |
백준(Python) 2576번 홀수 풀이 (0) | 2021.10.12 |
백준(Python) 1550번 16진수 풀이 (0) | 2021.10.09 |