wsc810 发表于 2011-8-16 10:28:36

二次多项式x^2-x+41

为什么x取1到40时,他总能得到素数,谁能通俗的讲讲

xbtianlang 发表于 2011-8-16 17:49:12

因为素数在自然数较小的区间比较密集,f(x)=x^2-x+p,x=1,2,3,... 是一个2次间隔多项式,当初值p为3,5,11,17,41,x取比初值小的自然数时,f(x)均为素数。
41仅仅是这些素数中最大一个,信不信有你,我反正是信了。
人们幻想用多项式表示素数,但现在还没发现更好的产生素数多项式。

wsc810 发表于 2011-8-17 17:33:39

这只是看到表面的现象,更深层次的原因是和虚二次域的类数为1的数有关,关于这方面的内容可以看潘氏兄弟所著的《代数数论》,只不过太深奥,我看不懂,陆洪文也得到一个关于实二次域类数为1的二次多项式的可以得到素数的公式,这些都很复杂。

郭先抢 发表于 2013-1-24 10:30:50

看到了也没必要觉得太神奇,我早就知道了

hujunhua 发表于 2013-1-25 08:31:19

记得以前做过《数论导引》上的一道习题,貌似:若x<=sqrt{p/3}时x^2-x+p皆为素数,则对于x=1~(p-1), x^2-x+p皆为素数。

zgg___ 发表于 2013-1-25 12:29:38

画了一个0-p中为素数的占比图,是否当p足够大时,在(0.5,1)的区间内就没有点了呢?s = {}; Do;
AppendTo, {x, p - 1}], True] +
   1)/p];, {i, 10000}]; ListPlot

chyanog 发表于 2013-1-25 15:04:30

6# zgg___
还能再快点t = AbsoluteTime[];
res = Block[{p}, Table;
    (Count, _?PrimeQ] + 1.)/p,
    {i, 1000}]];
ListPlot
AbsoluteTime[] - t或者
t = AbsoluteTime[];
cf = Compile[{{max, _Integer}},
   Table[(Length@Select, PrimeQ] + 1)/# &@
   Prime, {i, max}]];
res = cf;
ListPlot
AbsoluteTime[] - t
页: [1]
查看完整版本: 二次多项式x^2-x+41