任何三个数之和为素数的集合
来自http://tieba.baidu.com/f?kz=561833965
请找出5个数,使得它们中任何三个数之和为不同的素数.
比如如果我们找5个数为-5, 1, 7, 6m+3, 6n+3并且使得
6(m+n)+1,6(m+n)+7,6(m+n)+13
6m-1,6m+5,6m+11
6n-1,6n+5,6n+11
都是素数,那么这必然是一个解,当然这个搜索任务应该不会很简单.
同样,如果我们找到3个关于6同余的奇数a,b,c,而且a,b,c都不是3的倍数,使得a+b+c=3
并且选择另外两个模6为3的整数6m+3,6n+3,使得
6(m+n+1)+a,6(m+n+1)+b,6(m+n+1)+c
6m+3+a+b,6m+3+b+c,6m+3+c+a
6n+3+a+b,6n+3+b+c,6n+3+c+a
都是素数,那么它们也是这个问题的解.
而我的分析是上面应该包含了所有的解.
现在的问题就是用计算机找到一个这样的解. 555,
计算了一下,小的解已经很多了:L
-5 1 7 15 21
-5 1 7 15 51
-5 1 7 15 261
-5 1 7 15 591
-5 1 7 15 1281
-5 1 7 15 4641
-5 1 7 21 45
-5 1 7 21 51
-5 1 7 21 255
-5 1 7 21 351
-5 1 7 21 591
-5 1 7 21 1101
-5 1 7 21 1431
-5 1 7 21 2691
-5 1 7 45 231
-5 1 7 45 561
-5 1 7 51 105
-5 1 7 51 561
-5 1 7 51 1611
-5 1 7 105 171
-5 1 7 105 2691
-5 1 7 105 3531
-5 1 7 171 561
-5 1 7 171 1281
-5 1 7 171 1491
-5 1 7 171 1611
-5 1 7 171 4935
-5 1 7 231 1221
-5 1 7 231 1431
-5 1 7 231 1905
-5 1 7 255 351
-5 1 7 255 1491
-5 1 7 255 1611
-5 1 7 261 351
-5 1 7 261 1485
-5 1 7 261 1491
-5 1 7 261 1605
-5 1 7 261 1611
-5 1 7 261 2415
-5 1 7 351 945
-5 1 7 351 1101
-5 1 7 351 1431
-5 1 7 351 2961
-5 1 7 351 4641
-5 1 7 561 1101
-5 1 7 561 1185
-5 1 7 561 1221
-5 1 7 561 1431
-5 1 7 561 2901
-5 1 7 591 1281
-5 1 7 591 3921
-5 1 7 591 4005
-5 1 7 645 651
-5 1 7 645 1101
-5 1 7 645 1221
-5 1 7 645 1491
-5 1 7 645 4011
-5 1 7 645 4791
-5 1 7 651 1095
-5 1 7 651 1101
-5 1 7 651 1221
-5 1 7 651 1485
-5 1 7 651 4005
-5 1 7 651 4455
-5 1 7 651 4791
-5 1 7 945 1431
-5 1 7 945 2691
-5 1 7 975 4131
-5 1 7 1095 1281
-5 1 7 1095 4011
-5 1 7 1101 1185
-5 1 7 1101 1281
-5 1 7 1101 1611
-5 1 7 1101 4005
-5 1 7 1101 4011
-5 1 7 1101 4641
-5 1 7 1185 1491
-5 1 7 1185 1611
-5 1 7 1185 3921
-5 1 7 1221 1491
-5 1 7 1221 2415
-5 1 7 1281 1431
-5 1 7 1281 4131
-5 1 7 1281 4791
-5 1 7 1365 1431
-5 1 7 1431 4005
-5 1 7 1431 4011
-5 1 7 1431 4131
-5 1 7 1431 4641
-5 1 7 1431 4935
-5 1 7 1491 3921
-5 1 7 1611 2901
-5 1 7 1611 4131
-5 1 7 1905 2691
-5 1 7 1905 3531
-5 1 7 2415 2691
-5 1 7 2691 2961
-5 1 7 3921 4791
#include "stdafx.h"
#define HALF_PRIME (100)
#define PRIME_LIMIT (HALF_PRIME*HALF_PRIME)
bool notp;
#define IS_PRIME(x) (!notp)
void init_prime()
{
int i,j;
notp=notp=true;
for(i=2;i<=HALF_PRIME;i++){
if(IS_PRIME(i)){
for(j=i*i;j<PRIME_LIMIT;j+=i){
notp=true;
}
}
}
}
int nlist;
int nc;
int _tmain(int argc, _TCHAR* argv[])
{
int up;
int m,n;
init_prime();
up=(PRIME_LIMIT-14)/12;
for(m=1;m<up;m++){
if(!IS_PRIME(6*m-1))
continue;
if(!IS_PRIME(6*m+5))
continue;
if(!IS_PRIME(6*m+11))
continue;
if(nc<HALF_PRIME){
nlist=m;
}
}
for(m=0;m<nc;m++)for(n=m+1;n<nc;n++){
int u=6*(nlist+nlist);
if(!IS_PRIME(u+1))continue;
if(!IS_PRIME(u+7))continue;
if(!IS_PRIME(u+13))continue;
printf("-5 1 7 %d %d\n",6*nlist+3,6*nlist+3);
}
return 0;
}
本来以为同时9个素数约束条件结果应该很少的,没想到会这么多:L 呵呵
肯定越来越复杂 经常感叹 mathe初等高等数学都那么熟练。。。再加上计算机的力量.....简直无敌了:L mathe的代码风格好优美:) 呵呵,应该是比较常见的C风格代码.
不过高等数学,其实mathe也就一些非常常用的部分还能够应用.(数学的水太深了)
页:
[1]