Programmers-整数平方根の判別(Python)



質問する

  • の任意の数の整数nについて、nがある整数xの二乗であるか否かを判定しようとする.
    nが正の整数xの平方である場合、x+1の平方を返し、nが正の整数xの平方でない場合、-1を返す関数を完了する.
  • せいげんじょうけん

  • nは正の整数で、1より大きく、5000000000000未満です.
  • I/O例


    nreturn1211443-1

    I/O例説明

  • I/O例1
  • 121は正の整数11の二乗であり、144倍(11+1)を返します.
  • I/O例#2
  • 3は、正の整数の二乗ではないため、-1を返します.
  • ハーモニー

    import math
    
    def solution(n):
        answer = 0
    
        value = math.sqrt(n)
    
        if value % 1 == 0:
            answer = int(pow(value+1, 2))
    
        else :
            answer = -1
    
        return answer
    
    n = 121
    print(solution(n)) 
  • を求める整数nの平方根を値に代入し、この値を1で割った余りが0であれば正の整数に相当するのでpow()法により正の整数x+1の平方値を求めた.また、剰余が0でない場合、nは正の整数の二乗値ではないので、−1を返す.
  • 📝 結果



    😃 に感銘を与える

  • 最初、与えられたnがある量の整数xの平方根かどうかをどう判断しようと思ったとき、以前学校で学んだ平方根の概念を思い出した.これはsqrt()法を思い出させ、この方法で問題を解決するのがいいようです.
  • 👍 Irishのすべてのコードを表示


    Irish Github