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

C++で数値がプロス数であるかどうかをチェックするプログラム


数値「n」を指定すると、指定された正の整数がプロスであるかどうかを判断し、結果を出力として表示することがタスクになります。

プロス数とは何ですか?

プロス数は

によって与えられます

$$ N =k \ cdot \:2 ^ {n} + 1 $$

ここで、nは正の整数、kは奇数の正の整数です

最初のいくつかのproth番号を以下に示します-

3, 5, 9, 13, 17, 25, 33, 41, 49, 57, 65, 81, 97.......

入力

number: 17

出力

its a proth number

入力

number: 18

出力

its not a proth number

特定のプログラムで使用されているアプローチは次のとおりです

  • 状態を確認する番号を入力してください

  • 与えられた式を適用して、そのプロス数かどうかを確認します

  • 条件が真の場合は、プロス数を印刷します

  • 条件が当てはまらない場合は、プロス数ではないことを印刷してください

アルゴリズム

Step 1→ declare function to calculate power of 2
   bool isPower(int num)
      return (num && !(num & (num - 1)))
Step 2→ Declare function to check if a number is a proth number or not
   bool isProth(int num)
      declare int k = 1
      While (k < (num / k))
         IF (num % k == 0)
            IF (isPower(num / k))
               return true
            End
            Set k = k + 2
         End
      End
      return false
Step 3→ In main()
   Declare int num = 17
   IF (isProth(num - 1))
      Print "its a proth number"
   End
   Else
      Print "its not a proth number"
End

#include <bits/stdc++.h>
using namespace std;
//function to calculate power of 2
bool isPower(int num){
   return (num && !(num & (num - 1)));
}
//function to check if a number is a proth number
bool isProth(int num){
   int k = 1;
   while (k < (num / k)){
      if (num % k == 0){
         if (isPower(num / k))
            return true;
      }
      k = k + 2;
   }
   return false;
}
int main(){
   int num = 17;
   if (isProth(num - 1))
      cout << "its a proth number";
   else
      cout << "its not a proth number";
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

its a proth number

  1. C++でツリーの高さがバランスされているかどうかを確認するプログラム

    二分木があるとしましょう。高さがバランスしているかどうかを確認する必要があります。高さのバランスが取れたツリーの場合、ツリー内のすべてのノードについて、左側のサブツリーの高さと右側のサブツリーの高さの絶対差は0または1であることがわかっています。 したがって、入力が次のような場合 その場合、出力はTrueになります これを解決するには、次の手順に従います- 関数dfs()を定義します。これはノードを取ります ノードがnullの場合、- 0を返す l:=1 + dfs(ノードの左側) r:=1 + dfs(ノードの右側) 1、次に- re

  2. グラフが強く接続されているかどうかをチェックするC++プログラム

    有向グラフでは、1つのコンポーネントの頂点の各ペアの間にパスがある場合、コンポーネントは強く接続されていると言われます。 このアルゴリズムを解決するには、まず、DFSアルゴリズムを使用して各頂点の終了時間を取得し、次に転置されたグラフの終了時間を検索します。次に、頂点をトポロジカルソートの降順で並べ替えます。 入力 :グラフの隣接行列。 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 出力 :以下は、与え