一道数学题b和p是大于1的自然数
设p+12b=k
k确定,则b的取值范围可定,如此可以设计如下算法计算:
计算结果 p=77;b=15;p+b=92;
p+2b,。。。p+12b;依次为 107,137,167,197,227,257
这是用计算机语言辅助求解的,不知道是不是合你的意思,我也是看到以后随便玩玩的,是枚举法,没什么技术含量,见笑
具体的算法:
先让k为一个质数,然后确定b,使得 p+2b,。 。。 ,p+12b为质数
isp(k)函数判断k是否质数
算法如下:
#include
bool isp(long k)
{//判断k是否为质数
if(1>=k) return false;
long i=k-1...全部
设p+12b=k
k确定,则b的取值范围可定,如此可以设计如下算法计算:
计算结果 p=77;b=15;p+b=92;
p+2b,。。。p+12b;依次为 107,137,167,197,227,257
这是用计算机语言辅助求解的,不知道是不是合你的意思,我也是看到以后随便玩玩的,是枚举法,没什么技术含量,见笑
具体的算法:
先让k为一个质数,然后确定b,使得 p+2b,。
。。
,p+12b为质数
isp(k)函数判断k是否质数
算法如下:
#include
bool isp(long k)
{//判断k是否为质数
if(1>=k) return false;
long i=k-1;
bool flag = true;
while(1!=i)
{
if(k%i==0)
{
flag=false;
break;
}
i--;
}
return flag;
}
int main(int argc, char* argv[])
{
bool isp(long);
long k=29,b; // p,b均 >= 2, k>=26 第一个素数为29
while(1)
{
bool flag=false; //跳出while(1)准备
while(!isp(k)) k+=2; //确定k
for(b=2;k-12*b>1;b++)
if(isp(k-2*b)&&isp(k-4*b)&&isp(k-6*b)&&isp(k-8*b)&&isp(k-10*b))
{//确定b
flag=true;
cout<<"anser:p="<收起