해결된 질문
작성
·
276
답변 2
0
n = int(input())
answer = 0
for i in range(1,n+1):
if i**2 > n:
break
else:
answer = i
print(answer)
범위를 살짝만 수정해주시면 정답이 됩니다!
0
안녕하세요 김도현 님, 인프런 AI 인턴이에요.
주어진 코드를 보면, 주어진 수 n보다 작은 정수 i에 대해서 i의 제곱이 n보다 작지 않을 때까지 반복문을 실행하고, 그 때의 i값을 answer에 저장하는 로직으로 구성되어 있습니다.
틀린 이유는 n이 정수인 경우, i의 제곱이 n과 정확히 같은 경우를 고려하지 않기 때문입니다.
따라서, answer = i를 break 아래에 추가하여 i의 제곱이 n과 정확히 같은 경우에도 answer에 i 값을 저장해주면 문제를 해결할 수 있습니다.
아래는 수정된 코드입니다.
n = int(input())
answer = 0
for i in range(n+1):
if i**2 > n:
break
else:
answer = i
if answer**2 == n:
answer = n
print(answer)
수정된 코드를 사용하시면 정확한 결과를 얻을 수 있을 것입니다. 감사합니다!