[백준/파이썬] 1977번 완전제곱수 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 1977번 완전제곱수
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
구간 [M, N] 안의 완전제곱수들을 찾아
합과 최솟값을 출력하는 문제입니다.
완전제곱수가 없으면 -1을 출력합니다.
코드
import math
m = int(input())
n = int(input())
minSqrt = math.ceil(math.sqrt(m))
if(minSqrt**2 > n):
print(-1)
else:
tmp = minSqrt
s = 0
while(tmp**2 <= n):
s += tmp**2
tmp += 1
print(s)
print(minSqrt**2)
설명
M 이상인 첫 제곱수의 루트 값을 ceil(sqrt(M))로 찾고,
그 제곱부터 N 이하까지 누적합니다.
첫 제곱수 자체가 N보다 크면
구간 내 완전제곱수가 없는 경우이므로 -1입니다.
댓글남기기