Python
 Computer >> コンピューター >  >> プログラミング >> Python

数をチェックするプログラムは完全な正方形であるか、Pythonのsqrt関数なしではありません


数nがあるとすると、nが完全な平方数であるかどうかを確認する必要があります。完全な平方数kは、ある整数aに対してk =a*aとして表すことができます。組み込みの平方根関数を使用せずにこれを解決する必要があります。

したがって、入力がn =121のような場合、121 =11 * 11であるため、出力はTrueになります。

これを解決するには、次の手順に従います-

  • nが0と同じか、nが1と同じ場合、

    • Trueを返す

  • 開始:=2

  • 停止:=n/2のフロア

  • 開始中<=停止、実行

    • temp:=開始から停止までのすべての数値のリスト

    • k:=温度の中央要素

    • k_squared:=k * k

    • k_squaredがnと同じ場合、

      • Trueを返す

    • k_squared> nの場合、

      • start:=temp [0]

      • 停止:=k-1

    • それ以外の場合

      • 開始:=k + 1

      • stop:=tempの最後の要素

  • Falseを返す

理解を深めるために、次の実装を見てみましょう

def solve(n):
   if n == 0 or n == 1:
      return True
   start = 2
   stop = n // 2
   while start <= stop:
      temp = range(start, stop + 1)

   k = temp[len(temp) // 2]
   k_squared = k * k 

   if k_squared == n:
      return True

   if k_squared > n:
      start = temp[0]
      stop = k - 1
   else:
      start = k + 1
      stop = temp[-1]

   return False

n = 121
print(solve(n))
を返します

入力

121

出力

True

  1. 素数をチェックするPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −数が与えられているので、与えられた数が素数であるかどうかを確認する必要があります。 1より大きい特定の正の数で、1以外の要素はなく、その数自体は素数と呼ばれます。 2、3、5、7などは他の要素がないため素数です。 以下のこのプログラムでは、素数または非素数の性質について番号がチェックされます。 1以下の数は素数とは言えません。したがって、数値が1より大きい場合にのみ反復します。 ここで、その数が2から(num-1 // 2)の範囲の任意の数で正確に割り切れるかどうかを確認します。指定された範囲内に何ら

  2. アームストロング数をチェックするPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 整数nが与えられた場合、与えられた整数がアームストロング数であることを確認する必要があります。 正の整数は、次の場合、n次のアームストロング数と呼ばれます abcd... = a^n + b^n + c^n + d^n + … ここでは、3桁のアームストロング数、つまり3桁のブルートフォースアプローチについて説明します。 オーダーnのアームストロング番号を確認するには、3を行番号7の対応するオーダー値に置き換える必要があります。 それでは、実装を見てみましょう- 例