沈必然 沈必然
关注数: 20 粉丝数: 3 发帖数: 40 关注贴吧数: 1
比较HardyT(N)估算值,模拟GOLD(B)和OddGuess程序计算值 请各位老师指教!============================================== 奇数 HardyOG GOLD(B) OddGuess============================================== 9 3.221406 1 1 19 7.050201 3 12 29 10.999873 7 30 39 12.966635 10 46 49 19.891858 12 60 59 25.665709 16 87 69 26.408224 20 97 79 37.400209 24 129 89 43.787616 33 177 99 42.231151 30 153 199 133.500970 93 537 299 239.306107 187 1095 399 304.493857 200 1122 499 519.215791 362 2136 599 685.878982 515 3045 699 733.627634 454 2629 799 1064.839651 742 4398 899 1281.491095 974 5784 999 1276.928944 769 4497 1999 4550.778900 3105 18540 2999 8763.358287 6239 37305 3999 11806.436754 6491 38601 4999 20224.479964 13388 80130 5999 26695.529507 18025 107892 6999 29778.814367 15797 94312 7999 43945.689107 28606 171354 8999 53646.011107 35638 213540 9999 53494.644810 28055 167625 19999 201094.473801 125333 751335 29999 410686.397274 258012 1547331 39999 567116.150307 276046 1654407 49999 986824.594799 597550 3584163 59999 1351553.547739 822436 4933335 69999 1488724.566567 709902 4256566 79999 2223739.473850 1323527 7939590 89999 2640987.007290 1565573 9390879 99999 2762793.899184 1295438 7768611199999 10997610.524964 6342392 38050899299999 21831497.116346 12375535 74247117399999 31447910.190649 14067333 84391734499999 55255870.186797 30976555 185851824599999 76428869.716094 42759624 256549338699999 84791400.962165 37257998 223528785799999 127427667.978985 70450187 422690382899999 157153730.111165 86898805 521380914999999 153752389.059129 66052858 396278865==============================================
无聊写了个素数表程序 //Free PASCAL 2.20 调试成功 PROGRAM PRIME; //自制100万之内素数表 const N100 : longint = 1000000; var a0 : array [0 .. 100000] of longint; procedure p1; var a1 : array [1 .. 15625] of longint; // (15625 = 1000000 div 2 div 32) c1 : longint; //统计被筛除(奇)数的个数 n1 : longint; //参加筛选的素数 n2 : longint; //被筛除(奇)数 n3 : longint; //素数的奇数倍 i1 : longint; //n1 div 2(n1在奇数数组中下标量) i2 : longint; //n2 div 2(n2在奇数数组中下标量) site : integer;//n1或n2在数组a1中的下标量 mask : longint;//a1[site]屏蔽码 n1或n2实际对应a1中的某一二进制位 begin for i1 := 1 to 15625 do a1[i1] := 0; c1 := 0; n1 := 3; i1 := n1 shr 1; while n1 < 1000 do begin n2 := n1 * n1; n3 := n1; while n2 < N100 do begin i2 := n2 shr 1; site := i2 shr 5 + 1; mask := $00000001 shl (i2 and $0000001F); if (a1[site] and mask) = 0 then begin a1[site] := a1[site] or mask ; c1 := c1 + 1; end; n3 := n3 + 2; n2 := n3 * n1; end; repeat begin i1 := i1 + 1; n1 := 2 * i1 + 1; site := i1 shr 5 + 1; mask := $00000001 shl (i1 and $0000001F); end; until (a1[site] and mask) = 0; end; a0[1] := 2; i2 := 2; for i1 := 1 to 15625 do for site := 0 to 31 do if (i1 = 1) and (site = 0) then continue else begin mask := $00000001 shl site; if (a1[i1] and mask) = 0 then begin a0[i2] := ((i1 - 1) shl 6) + (site shl 1) + 1; i2 := i2 + 1; end; end; a0[0] := i2 - 1;//正确结果是78498 end; procedure d1; var i1 : longint; f1 : text; begin assign(f1,'PRIME.TXT'); rewrite(f1); writeln(f1,'================100万之内素数表================'); for i1 := 1 to a0[0] do begin write(f1,a0[i1]:8); if i1 mod 10 = 0 then writeln(f1); end; writeln(f1); write(f1,'TOTAL:'); writeln(f1,a0[0]); close(f1); end; BEGIN p1; d1; END.
1 下一页