在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