在C ++中检查数字是否为Proth的程序

给定数字n,任务是确定给定的正整数是否是proth,并将结果显示为输出。

什么是Proth Number?

产品编号由

$$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 函数计算2的幂

   bool isPower(int num)

      return (num && !(num & (num - 1)))

Step 2→ Declare 检查数字是否为真数的功能 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;

//函数计算2的幂

bool isPower(int num){

   return (num && !(num & (num - 1)));

}

//检查数字是否为真数的功能

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

以上是 在C ++中检查数字是否为Proth的程序 的全部内容, 来源链接: utcz.com/z/338296.html

回到顶部