プログラマLV 1-判別整数平方根


問題の説明


任意の正の整数nについて、nがある正の整数xの二乗であるか否かを判断しようとする.
nが正の整数xの平方である場合、x+1の平方を返し、nが正の整数xの平方でない場合、-1を返す関数を完了する.
せいげんじょうけん
1065;nは正の整数で、1または50000000000億より大きい.

に答える

import math
def nextSqure(n):
    return int(math.sqrt(n)+1) ** 2 if int(math.sqrt(n)) ** 2 == n else -1

他人を解く

def nextSqure(n):
    sqrt = n ** (1/2)
    return (sqrt + 1) ** 2 if sqrt % 1 == 0 else -1

学識


⦁ math.sqrt(n) == n**(1/2)