728x90
정수 제곱근 판별
문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
제한 사항
n은 1이상, 50000000000000 이하인 양의 정수입니다.
입출력 예
n return
121 144
3 -1
입출력 예 설명
입출력 예#1
121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다.
입출력 예#2
3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다.
내 답
|
1
2
3
4
5
|
from math import *
def solution(n):
if sqrt(n)==round(sqrt(n)):
return (sqrt(n)+1)**2
return -1
|
cs |
남의 답 1
|
1
2
3
4
5
|
def solution(n):
sqrt = n ** (1/2)
if sqrt % 1 == 0:
return (sqrt + 1) ** 2
return -1
|
cs |
남의 답 2
|
1
2
|
def solution(n):
return n == int(n**.5)**2 and int(n**.5+1)**2 or -1
|
cs |
남의 답 3
|
1
2
3
|
def solution(n):
from math import sqrt
return -1 if sqrt(n) % 1 else (sqrt(n)+1)**2
|
cs |
남의 답 4
|
1
2
3
|
import math
def solution(n):
return -1 if not math.sqrt(n).is_integer() else (math.sqrt(n)+1)**2
|
cs |
남의 답 5
|
1
2
3
|
def solution(n):
sqrt = pow(n, 0.5)
return pow(sqrt + 1, 2) if sqrt == int(sqrt) else -1
|
cs |
1163점 + 4점 -> 1167점
728x90
'Python' 카테고리의 다른 글
| 210706 프로그래머스 코딩 연습 최대공약수와 최소공배수 (0) | 2021.07.06 |
|---|---|
| 210706 프로그래머스 코딩 연습 콜라츠 추측 (0) | 2021.07.06 |
| 210706 프로그래머스 코딩 연습 시저 암호 (0) | 2021.07.06 |
| 210706 프로그래머스 코딩 연습 수박수박수박수박수박수? (0) | 2021.07.06 |
| 210706 프로그래머스 코딩 연습 약수의 합 (0) | 2021.07.06 |




최근댓글