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

パーフェクトスクエアをチェックするかどうか


数値の平方根が整数の場合、その数値は完全な平方数であると言われます。つまり、平方根が整数の場合、その数は完全な平方数と呼ばれます。

その数の平方根を見つけてiと何度も一致させることで完全な平方根をチェックし、正確な平方根を取得できます。平方根が値と交差する場合、それは完全な平方数ではありません。

しかし、ここでは労力を減らすために、平方根を何度もチェックしていません。完全な平方数の平方根は整数であることがわかっているので、平方根を1つ増やして、完全な平方根が一致するかどうかを確認できます。

入力と出力

Input:
A number to check: 1032
Output:
1032 is not a perfect square number.

アルゴリズム

isPerfectSquare(num)

入力: 番号。

出力: 数値が完全な平方数である場合は真であり、平方根も出力します。

Begin
   if num < 0, then
      exit
   sqRoot := 1
   sq := sqRoot^2
   while sq <= num, do
      if sq = num, then
         return sqRoot
      sqRoot := sqRoot + 1
      sq := sqRoot^2
   done
   otherwise return error
End

#include<iostream>
using namespace std;

int isPerfectSquare(int num) {
   if(num < 0)
      return -1;            //a -ve number is not a valid square term
   int sqRoot = 1, sq;

   while((sq =(sqRoot*sqRoot)) <= num) {             //when square of square root is not crossed the number
      if(sq == num)
         return sqRoot;
      sqRoot++;               //as square root of a perfect square is always integer
   }
   return -1;
}

int main() {
   int num, res;
   cout << "Enter a number to check whether it is perfect square or not: ";
   cin >> num;

   if((res = isPerfectSquare(num)) != -1)
      cout << num << " is a perfect square number, square root: " << res;
   else
      cout << num << " is not a perfect square number.";
}

出力

Enter a number to check whether it is perfect square or not: 1032
1032 is not a perfect square number.

  1. 番号がアームストロングであるか、Cを使用していないことを確認してください

    問題 与えられた番号がアームストロング番号であるかどうかをCプログラミング言語を使用して確認するにはどうすればよいですか? 解決策 アームストロング数は、その桁の立方体の合計に等しい数です。 構文 pqrs………=pow(p,n)+pow(q,n)+pow(r,n)+………. たとえば、153、371、1634などはアームストロング数です。 153=1*1*1 + 5*5*5 + 3*3*3    =1+125+27    =153 (Armstrong numbe

  2. プラス完全数をチェックするCプログラム

    n桁の数xが与えられた場合、私たちのタスクは、与えられた数のプラス完全数かどうかを確認することです。数値がプラス完全数であることを確認するために、すべての桁のn乗d(d ^ n)を見つけて、すべての桁を合計します。合計がnに等しい場合、その数値はプラス完全数です。プラス完全数は、任意の数のアームストロングを見つけるのと似ています。 以下の例のように- 例 Input: 163 Output: Number is not a perfect_number Explanation: 1^3 + 6^3 + 3^3 is not equal to 163 Input: 371 Output: