2011这个素数, 最多是多少个连续素数的和?
2011 本身是一个素数, 且是 11 个连续素数之和。(157+163+167+173+179+181+191+193+197+199+211=2011)
来源:http://tieba.baidu.com/f?kz=967687985
问题来了,
2011可以被写成哪些连续素数的和?
最长的是可以写成多少个?我想应该不会小于11吧此贴附带 mathematica 学习价值
显然是可以穷举的,但是请写出程序吧,最好还能有注释,
没有注释的程序让人很不喜欢! 661 +673+677=2011这是另外一组 function output=sushu2011
k=1;%结果个数
for i=2:1:1005 %从2开始寻找
if isprime(i) %从第一个数是素数的开始找
=istart(i);%求出和(>=2011)与素数序列
if a==2011 %如果和等于2011,则赋值
output{k}=b;%对结果赋值
k=k+1;
end
end
end
end
%%%子函数,求出从素数j开始的连续素数,
%使得其和略大于等于2011
function =istart(j)
jsum=0;%用来保存素数和
k=0;%用来保存素数个数
sushu=[];%用来保存素数序列
for i=j:1:1009
%j是奇数,找出连续素数的和,使其结果小于等于2011
%注意是jsum<2011,而不是jsum<=2011
if isprime(i)&&jsum<2011
jsum=jsum+i;%连续素数求和
sushu=;%记录连续素数
k=k+1;%连续素数的个数
end
end
output=;%素数个数,素数序列
end上面的代码是用matlab写的,我几乎只会用matlab了,对mathematica有点熟悉,
但是还是对matlab比较熟悉,结果有两个! Pari/Gp
f(n)=forprime(p=2,n/2,s=0;forprime(q=p,n,s+=q;if(s==n,print(p","q));if(s>n,break())))
f(2011) 4# mathe
mathe好厉害呀,我觉得这个也可以用mathematica编程,但是mathematica不是一个善于编程的软件 Clear["Global`*"];(*清除所有变量*)
num=2011;(*被求的数*)
geshu=PrimePi;(*num以下的素数的个数*)
tab=Table,{n,geshu}];(*给出num以下的素数表*)
Do[
sum=0;
t=0;
Do[
sum=sum+tab[];(*从第k个素数开始求和*)
t=t+1;(*参加求和的素数个数*)
(*如果和等于num,则输出是从第k个素数开始的*)
If];
(*如果和大于num,从第k个素数开始的连续素数序列没有符合要求的*)
If],
{j,k,geshu}
],
{k,1,geshu}
] 这个代码是用mathematica写的,速度要快很多很多!
结果是
{37,11}
{121,3}
{305,1} 为了使别人更加容易代码,我使用了类似于C语言的风格的代码 Clear["Global`*"];(*清除所有变量*)
num=2011;(*被求的数*)
geshu=PrimePi;(*num以下的素数的个数*)
tab=Table,{n,geshu}];(*给出num以下的素数表*)
Do[
sum=0;
t=0;
Do[
sum=sum+tab[];(*从第k个素数开始求和*)
t=t+1;(*参加求和的素数个数*)
(*如果和等于num,则输出从第k个素数开始的连续t个素数序列*)
If]}]];
(*如果和大于num,从第k个素数开始的连续素数序列没有符合要求的*)
If],
{j,k,geshu}
],
{k,1,geshu}
]结果是{个数,连续素数序列}的形式
如下:
{11,{157,163,167,173,179,181,191,193,197,199,211}}
{3,{661,673,677}}
{1,{2011}} 9527(对于这个数,请见周星驰的电影吧或者百度)是个很好的数,
输出结果是{29,{241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419}}
居然是连续29个素数之和,真的很奇妙的一个数 4# mathe
mathe好厉害呀,我觉得这个也可以用mathematica编程,但是mathematica不是一个善于编程的软件
mathematica 发表于 2011-1-15 15:49 http://bbs.emath.ac.cn/images/common/back.gif
用Mathematica编程只需一行代码 即可搞定!!!