找回密码
 欢迎注册
查看: 23237|回复: 22

[讨论] 64bit整数快速因子分解算法

[复制链接]
发表于 2008-5-15 08:12:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
算法,一般都有特定的适用范围。在某个范围合理,在另一个范围可能就不行。
比如因数分解问题,小的数可以通过试除法,大的就不行了(否则RSA就不安全了)。

如果用试除法,只需试探该数平方根以内的素数即可。
$\pi(\sqrt{2^32}) = 6542;\quad \pi(\sqrt{2^64}) = 203280221$
后者是前者的 31073 倍!

请大家讨论下:64bit无符号整数快速因子分解算法。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-15 08:16:25 | 显示全部楼层


试除

或者RHO算法、ECM
得不到内嵌的代码
不好说
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-15 08:17:37 | 显示全部楼层


你给我几个两因子且因子大概相等的数字
我尝试下分解时间
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-5-15 08:22:06 | 显示全部楼层
这个嘛,自己就可构造的,
找两个32bit左右的素数相乘就可以了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-15 09:37:08 | 显示全部楼层
64bit内的,还是用Pollard rho方法吧,平均复杂度是$root{4}{n}$的.不过,有时候Pollard rho方法会很慢.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-15 13:45:30 | 显示全部楼层
RHO算法是概率算法
运气成分多些
不像ECM,二次筛等运算时间基本固定

这里有个成本问题
试除多少素数合适是个问题

不过64bit也就是玩家的水平
呵呵
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-5-15 20:29:15 | 显示全部楼层
原帖由 无心人 于 2008-5-15 13:45 发表
不过64bit也就是玩家的水平
呵呵


因为我想把现有的 HugeCalc 移植到 64bit OS 下,
有些函数的入参类型需相应升级,所以得事先进行一些技术储备。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-15 21:44:51 | 显示全部楼层
那可以实现RHO算法
其他免了

似乎在MIRACL源代码里有代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-1-27 00:22:55 | 显示全部楼层
本来想新发一个主题贴的。

但发之前搜索了一下,发现有好多相关内容。

而且我要发的代码与这个贴子的主题再贴切不过了。

所以就直接贴在这里了。

#####

我把楼主的想法实现了一下,发现做出来的效果并不是太好。

大家看看我用的方法与传说中RHO是不是完全一样的,是不是一字不差地实现出来了。

我个人觉得分解极端数据的速度好像比试除快不了多少。

所以请大家帮我看看哪里写得不够好,应该如何优化。

如果谁有更好的代码,也贴出来让大家学习学习吧。
  1. #include<cstdio>
  2. #include<cstdlib>

  3. unsigned long long x;
  4. unsigned long long m(unsigned long long a,unsigned long long b,unsigned long long n){        //返回a*b%n的结果
  5.         unsigned long long r;
  6.         r=0;
  7.         a%=n;
  8.         b%=n;
  9.         while(b){
  10.                 if(b&1){
  11.                         if(r+a<r)r=r-n+a;
  12.                         else r+=a;
  13.                         if(r>=n)r-=n;}
  14.                 if((a<<1)<a)a=a-n+a;
  15.                 else a<<=1;
  16.                 if(a>=n)a-=n;
  17.                 b>>=1;}
  18.         return r;}
  19. unsigned long long v(unsigned long long a,unsigned long long n,unsigned long long b){        //返回a^n%b的结果
  20.         unsigned long long r,p;
  21.         for(r=1,p=a;n;n>>=1){
  22.                 if(n&1)r=m(r,p,b);
  23.                 p=m(p,p,b);}
  24.         return r;}
  25. unsigned long long w(unsigned int a,unsigned long long n){        //以a为基测试n
  26.         unsigned long long u,x,q;
  27.         int t;
  28.         u=n-1;
  29.         for(t=0;!(u&1);u>>=1)t++;
  30.         x=v(a,u,n);
  31.         for(;t--;){
  32.                 q=m(x,x,n);
  33.                 if(q==1&&x-1&&x-n+1)return 1;        //返回1表示测试不通过
  34.                 x=q;}
  35.         return x-1;}        //当且仅当x=1时,测试通过
  36. unsigned long long z(unsigned long long n){        //判断n是否为素数
  37.         int p[9]={2,3,5,7,11,13,17,19,23},i;
  38.         for(i=0;i<9;++i){
  39.                 if(n==p[i])return 1;        //n是列表中的素数,返回"是"
  40.                 if(w(p[i],n))return 0;}        //n没有通过素数基p[i]的测试,返回"否"
  41.         return 1;}        //n通过了9个素数基的测试,返回"是"
  42. unsigned long long h(unsigned long long n){        //分解n
  43.         unsigned long long x,i,d,b,t,y;
  44.         if(!(n&1))return 2;
  45.         for(;;){
  46.                 x=rand()+2;y=x;
  47.                 for(i=2;;i++){
  48.                         x=m(x,x,n);
  49.                         if(x)x--;
  50.                         else x=n-1;
  51.                         d=y>x?y-x:x-y;
  52.                         b=n;
  53.                         for(;b;){t=d;d=b;b=t%b;}        //辗转相除求b和d的最大公约数
  54.                         if(d>1&&d<n)return d;        //若d不是1也不是n本身,则分解成功
  55.                         if(d==n)break;
  56.                         if(!(i&(i-1)))y=x;}}}
  57. void g(unsigned long long x){        //输出x的分解式
  58.     unsigned long long o;
  59.         if(z(x))printf("%I64u",x);
  60.         else{
  61.                 o=h(x);
  62.                 g(o);
  63.                 printf("*");
  64.                 g(x/o);}}
  65. int main(){
  66.         while(scanf("%I64u",&x)>0&&x>1)
  67.                 if(z(x))printf("%I64u is a prime.\n",x);
  68.                 else{
  69.                         printf("%I64u=",x);
  70.                         g(x);
  71.                         puts("");}
  72.         return 0;}
复制代码
测试数据1
  1. 18446744073709551496
  2. 18446744073709551497
  3. 18446744073709551498
  4. 18446744073709551499
  5. 18446744073709551500
  6. 18446744073709551501
  7. 18446744073709551502
  8. 18446744073709551503
  9. 18446744073709551504
  10. 18446744073709551505
  11. 18446744073709551506
  12. 18446744073709551507
  13. 18446744073709551508
  14. 18446744073709551509
  15. 18446744073709551510
  16. 18446744073709551511
  17. 18446744073709551512
  18. 18446744073709551513
  19. 18446744073709551514
  20. 18446744073709551515
  21. 18446744073709551516
  22. 18446744073709551517
  23. 18446744073709551518
  24. 18446744073709551519
  25. 18446744073709551520
  26. 18446744073709551521
  27. 18446744073709551522
  28. 18446744073709551523
  29. 18446744073709551524
  30. 18446744073709551525
  31. 18446744073709551526
  32. 18446744073709551527
  33. 18446744073709551528
  34. 18446744073709551529
  35. 18446744073709551530
  36. 18446744073709551531
  37. 18446744073709551532
  38. 18446744073709551533
  39. 18446744073709551534
  40. 18446744073709551535
  41. 18446744073709551536
  42. 18446744073709551537
  43. 18446744073709551538
  44. 18446744073709551539
  45. 18446744073709551540
  46. 18446744073709551541
  47. 18446744073709551542
  48. 18446744073709551543
  49. 18446744073709551544
  50. 18446744073709551545
  51. 18446744073709551546
  52. 18446744073709551547
  53. 18446744073709551548
  54. 18446744073709551549
  55. 18446744073709551550
  56. 18446744073709551551
  57. 18446744073709551552
  58. 18446744073709551553
  59. 18446744073709551554
  60. 18446744073709551555
  61. 18446744073709551556
  62. 18446744073709551557
  63. 18446744073709551558
  64. 18446744073709551559
  65. 18446744073709551560
  66. 18446744073709551561
  67. 18446744073709551562
  68. 18446744073709551563
  69. 18446744073709551564
  70. 18446744073709551565
  71. 18446744073709551566
  72. 18446744073709551567
  73. 18446744073709551568
  74. 18446744073709551569
  75. 18446744073709551570
  76. 18446744073709551571
  77. 18446744073709551572
  78. 18446744073709551573
  79. 18446744073709551574
  80. 18446744073709551575
  81. 18446744073709551576
  82. 18446744073709551577
  83. 18446744073709551578
  84. 18446744073709551579
  85. 18446744073709551580
  86. 18446744073709551581
  87. 18446744073709551582
  88. 18446744073709551583
  89. 18446744073709551584
  90. 18446744073709551585
  91. 18446744073709551586
  92. 18446744073709551587
  93. 18446744073709551588
  94. 18446744073709551589
  95. 18446744073709551590
  96. 18446744073709551591
  97. 18446744073709551592
  98. 18446744073709551593
  99. 18446744073709551594
  100. 18446744073709551595
  101. 18446744073709551596
  102. 18446744073709551597
  103. 18446744073709551598
  104. 18446744073709551599
  105. 18446744073709551600
  106. 18446744073709551601
  107. 18446744073709551602
  108. 18446744073709551603
  109. 18446744073709551604
  110. 18446744073709551605
  111. 18446744073709551606
  112. 18446744073709551607
  113. 18446744073709551608
  114. 18446744073709551609
  115. 18446744073709551610
  116. 18446744073709551611
  117. 18446744073709551612
  118. 18446744073709551613
  119. 18446744073709551614
  120. 18446744073709551615
  121. 0
复制代码
输出1
  1. 18446744073709551496=2*2*2*13*17*37359691*279276367
  2. 18446744073709551497=83*47*4728721885083197
  3. 18446744073709551498=2*3*8447*363970326224489
  4. 18446744073709551499=363269*50779846542671
  5. 18446744073709551500=2*2*5*5*5*36893488147419103
  6. 18446744073709551501=3*11*3*186330748219288399
  7. 18446744073709551502=2*7*17659*74614903261427
  8. 18446744073709551503=119026343*154980348121
  9. 18446744073709551504=2*2*2*2*3*19*93053*217367447189
  10. 18446744073709551505=5*29*160649*791906109881
  11. 18446744073709551506=2*266416229*34620158357
  12. 18446744073709551507=3*293*31*676969579570243
  13. 18446744073709551508=2*2*343242169*13435662733
  14. 18446744073709551509=7*13*202711473337467599
  15. 18446744073709551510=2*5*3*3*3*68321274347072413
  16. 18446744073709551511=2617*7048813172987983
  17. 18446744073709551512=2*2*2*11*263*227*18341*191439889
  18. 18446744073709551513=3*17*3427981*105514255823
  19. 18446744073709551514=2*149*5987*10339372933139
  20. 18446744073709551515=5*281*13129355212604663
  21. 18446744073709551516=2*2*3*7*7*43826197*715827881
  22. 18446744073709551517=397*46465350311610961
  23. 18446744073709551518=2*23*41*620441*15764403593
  24. 18446744073709551519=3*3*307*405029*16483624697
  25. 18446744073709551520=2*2*2*2*2*5*2663*43294085790719
  26. 18446744073709551521 is a prime.
  27. 18446744073709551522=2*3*13*13*619*739*39769184003
  28. 18446744073709551523=11*7*19*11*6897409*166186879
  29. 18446744073709551524=2*2*107*1117*38585379884599
  30. 18446744073709551525=5*5*3*4441*55383154165607
  31. 18446744073709551526=2*4481*63601*32363153923
  32. 18446744073709551527=17099*1078820052266773
  33. 18446744073709551528=2*2*2*3*3*256204778801521549
  34. 18446744073709551529=14843*13973891*88936633
  35. 18446744073709551530=2*5*7*17*37*418958529950251
  36. 18446744073709551531=3*962165251*6390705427
  37. 18446744073709551532=2*2*43*67*193*809383*10247197
  38. 18446744073709551533 is a prime.
  39. 18446744073709551534=2*3*29*11*19473149*494927519
  40. 18446744073709551535=5*13*71*71*65539*89209*9629
  41. 18446744073709551536=2*2*2*2*409*1793599*1571632781
  42. 18446744073709551537=3*7*3*3*101*7623919*126753007
  43. 18446744073709551538=2*31*10037*29643133428427
  44. 18446744073709551539=61*268909*1124564966411
  45. 18446744073709551540=2*2*5*3*986507*311650839337
  46. 18446744073709551541=23*73*7283*1508546551513
  47. 18446744073709551542=2*19*485440633518672409
  48. 18446744073709551543=3*839*7328861372153179
  49. 18446744073709551544=2*2*2*7*47*8627903*812322689
  50. 18446744073709551545=11*5*3319*36871*2740721231
  51. 18446744073709551546=2*3*3*1024819115206086197
  52. 18446744073709551547=17*211*251*1101431*18601901
  53. 18446744073709551548=2*2*13*53*6693303364916383
  54. 18446744073709551549=3*89*69088929115017047
  55. 18446744073709551550=2*5*5*109*57881*58477284139
  56. 18446744073709551551=131*7*20116405751046403
  57. 18446744073709551552=2*2*2*2*2*2*3*59*233*1103*2089*3033169
  58. 18446744073709551553=401*385788209*119241217
  59. 18446744073709551554=2*584911*15768846947407
  60. 18446744073709551555=5*3*3*97*197*325957*65812583
  61. 18446744073709551556=2*2*11*137*547*5594472617641
  62. 18446744073709551557 is a prime.
  63. 18446744073709551558=2*3*7*439208192231179799
  64. 18446744073709551559=41*163*269*8807*1165112831
  65. 18446744073709551560=2*2*2*5*461168601842738789
  66. 18446744073709551561=1811*3*19*13*103*133458377137
  67. 18446744073709551562=2*2713*19993*773*219979633
  68. 18446744073709551563=29*74187931*8574098437
  69. 18446744073709551564=2*2*3*3*17*3*3*23*319279*456065899
  70. 18446744073709551565=5*7*7*79*599*659*2414428283
  71. 18446744073709551566=2*9223372036854775783
  72. 18446744073709551567=11*3*37*167*223*1039*6323*61751
  73. 18446744073709551568=2*2*2*2*1177067*979486728119
  74. 18446744073709551569=31*173*9419*439771*830387
  75. 18446744073709551570=2*5*3*24097*25517345276327
  76. 18446744073709551571=11071*844709*1972539689
  77. 18446744073709551572=2*2*7*229*181*3697*4299304283
  78. 18446744073709551573=3*3*31799*64456059323003
  79. 18446744073709551574=2*13*440303*1611367982233
  80. 18446744073709551575=5*5*43*122099*140539741759
  81. 18446744073709551576=2*2*2*3*643*1195356666259043
  82. 18446744073709551577=139646831*132095686967
  83. 18446744073709551578=2*11*3931*213301543369829
  84. 18446744073709551579=3*7*57906439*15169580441
  85. 18446744073709551580=2*2*5*19*83*1277*20261*22605091
  86. 18446744073709551581=17*72786899*14907938207
  87. 18446744073709551582=2*3*3*14737*4837853*14374259
  88. 18446744073709551583=827*3894899*5726879071
  89. 18446744073709551584=2*2*2*2*2*179951*3203431780337
  90. 18446744073709551585=5*3*499*2593*950441521877
  91. 18446744073709551586=2*7*113*5647*2064883032409
  92. 18446744073709551587=23*23*13*16561661*161963371
  93. 18446744073709551588=2*2*3*3491*440340496364689
  94. 18446744073709551589=11*13177*127265442359687
  95. 18446744073709551590=2*5*191*421*90679*252986611
  96. 18446744073709551591=3*3*3*47*3384529*4294967291
  97. 18446744073709551592=2*2*2*29*79511827903920481
  98. 18446744073709551593=7*16547*159258424692517
  99. 18446744073709551594=2*3*3074457345618258599
  100. 18446744073709551595=5*3301*373*2996369460503
  101. 18446744073709551596=2*2*34421*133978850655919
  102. 18446744073709551597=3*6148914691236517199
  103. 18446744073709551598=2*17*17*17*2927*641387128649
  104. 18446744073709551599=19*67*14490765179661863
  105. 18446744073709551600=2*2*2*2*5*3*7*5*11*61*3*13*31*41*151*1321*331
  106. 18446744073709551601=53*348051774975651917
  107. 18446744073709551602=2*157*1973*29775769179641
  108. 18446744073709551603=3*139*2306123*19182323033
  109. 18446744073709551604=2*2*37*9902437*12586817029
  110. 18446744073709551605=5*2551*1446236305269271
  111. 18446744073709551606=2*3*71*42013*1030686124187
  112. 18446744073709551607=7*9241*464773*613566757
  113. 18446744073709551608=2*2*2*2305843009213693951
  114. 18446744073709551609=3*3*818923289*2502845209
  115. 18446744073709551610=2*5*23*53301701*1504703107
  116. 18446744073709551611=11*59*98818999*287630261
  117. 18446744073709551612=2*2*3*715827883*2147483647
  118. 18446744073709551613=13*3889*364870227143809
  119. 18446744073709551614=2*7*7*73*337*127*92737*649657
  120. 18446744073709551615=5*3*17*641*257*65537*6700417
复制代码
用时:3.6秒(平均每个数据用时0.03秒)

测试数据2
  1. 18446740749405014281
  2. 18446740826714418643
  3. 18446740895433889187
  4. 18446741058642631729
  5. 18446741127362102273
  6. 18446741264801043361
  7. 18446741513909124083
  8. 18446741616988329899
  9. 18446741754427270987
  10. 18446741831736675349
  11. 18446741951995748801
  12. 18446741986355484073
  13. 18446742132384358979
  14. 18446742338542770611
  15. 18446742390082373519
  16. 18446740904023823329
  17. 18446740972743294161
  18. 18446741135952037387
  19. 18446741204671508219
  20. 18446741342110449883
  21. 18446741591218531649
  22. 18446741694297737897
  23. 18446741831736679561
  24. 18446741909046084247
  25. 18446742029305158203
  26. 18446742063664893619
  27. 18446742209693769137
  28. 18446742415852181633
  29. 18446742467391784757
  30. 18446741041462765249
  31. 18446741204671509083
  32. 18446741273390980171
  33. 18446741410829922347
  34. 18446741659938005041
  35. 18446741763017211673
  36. 18446741900456153849
  37. 18446741977765558823
  38. 18446742098024633227
  39. 18446742132384368771
  40. 18446742278413244833
  41. 18446742484571658097
  42. 18446742536111261413
  43. 18446741367880254361
  44. 18446741436599726057
  45. 18446741574038669449
  46. 18446741823146754347
  47. 18446741926225961891
  48. 18446742063664905283
  49. 18446742140974310941
  50. 18446742261233386409
  51. 18446742295593122257
  52. 18446742441621999611
  53. 18446742647780414699
  54. 18446742699320018471
  55. 18446741505319198009
  56. 18446741642758141913
  57. 18446741891866227739
  58. 18446741994945435667
  59. 18446742132384379571
  60. 18446742209693785517
  61. 18446742329952861433
  62. 18446742364312597409
  63. 18446742510341475307
  64. 18446742716499891163
  65. 18446742768039495127
  66. 18446741780197086841
  67. 18446742029305174523
  68. 18446742132384383219
  69. 18446742269823328147
  70. 18446742347132734669
  71. 18446742467391811481
  72. 18446742501751547713
  73. 18446742647780426699
  74. 18446742853938844091
  75. 18446742905478448439
  76. 18446742278413265569
  77. 18446742381492475657
  78. 18446742518931422441
  79. 18446742596240830007
  80. 18446742716499908443
  81. 18446742750859645139
  82. 18446742896888526097
  83. 18446743103046946273
  84. 18446743154586551317
  85. 18446742484571686321
  86. 18446742622010633873
  87. 18446742699320041871
  88. 18446742819579120979
  89. 18446742853938857867
  90. 18446742999967739641
  91. 18446743206126160969
  92. 18446743257665766301
  93. 18446742759449582449
  94. 18446742836758991023
  95. 18446742957018071027
  96. 18446742991377808171
  97. 18446743137406691033
  98. 18446743343565113897
  99. 18446743395104719613
  100. 18446742914068399921
  101. 18446743034327480429
  102. 18446743068687217717
  103. 18446743214716101191
  104. 18446743420874524919
  105. 18446743472414130851
  106. 18446743154586561721
  107. 18446743188946299233
  108. 18446743334975183659
  109. 18446743541133608731
  110. 18446743592673214999
  111. 18446743223306036809
  112. 18446743369334921507
  113. 18446743575493346963
  114. 18446743627032953327
  115. 18446743515363807361
  116. 18446743721522234449
  117. 18446743773061841221
  118. 18446743927680663841
  119. 18446743979220271189
  120. 18446744030759878681
  121. 0
复制代码
输出2
  1. 18446740749405014281=4294966909*4294966909
  2. 18446740826714418643=4294966927*4294966909
  3. 18446740895433889187=4294966909*4294966943
  4. 18446741058642631729=4294966981*4294966909
  5. 18446741127362102273=4294966909*4294966997
  6. 18446741264801043361=4294966909*4294967029
  7. 18446741513909124083=4294967087*4294966909
  8. 18446741616988329899=4294966909*4294967111
  9. 18446741754427270987=4294966909*4294967143
  10. 18446741831736675349=4294967161*4294966909
  11. 18446741951995748801=4294966909*4294967189
  12. 18446741986355484073=4294966909*4294967197
  13. 18446742132384358979=4294967231*4294966909
  14. 18446742338542770611=4294967279*4294966909
  15. 18446742390082373519=4294966909*4294967291
  16. 18446740904023823329=4294966927*4294966927
  17. 18446740972743294161=4294966927*4294966943
  18. 18446741135952037387=4294966927*4294966981
  19. 18446741204671508219=4294966927*4294966997
  20. 18446741342110449883=4294966927*4294967029
  21. 18446741591218531649=4294967087*4294966927
  22. 18446741694297737897=4294966927*4294967111
  23. 18446741831736679561=4294967143*4294966927
  24. 18446741909046084247=4294966927*4294967161
  25. 18446742029305158203=4294966927*4294967189
  26. 18446742063664893619=4294966927*4294967197
  27. 18446742209693769137=4294966927*4294967231
  28. 18446742415852181633=4294967279*4294966927
  29. 18446742467391784757=4294966927*4294967291
  30. 18446741041462765249=4294966943*4294966943
  31. 18446741204671509083=4294966981*4294966943
  32. 18446741273390980171=4294966997*4294966943
  33. 18446741410829922347=4294967029*4294966943
  34. 18446741659938005041=4294967087*4294966943
  35. 18446741763017211673=4294967111*4294966943
  36. 18446741900456153849=4294967143*4294966943
  37. 18446741977765558823=4294967161*4294966943
  38. 18446742098024633227=4294967189*4294966943
  39. 18446742132384368771=4294966943*4294967197
  40. 18446742278413244833=4294966943*4294967231
  41. 18446742484571658097=4294966943*4294967279
  42. 18446742536111261413=4294967291*4294966943
  43. 18446741367880254361=4294966981*4294966981
  44. 18446741436599726057=4294966997*4294966981
  45. 18446741574038669449=4294967029*4294966981
  46. 18446741823146754347=4294967087*4294966981
  47. 18446741926225961891=4294966981*4294967111
  48. 18446742063664905283=4294966981*4294967143
  49. 18446742140974310941=4294966981*4294967161
  50. 18446742261233386409=4294966981*4294967189
  51. 18446742295593122257=4294966981*4294967197
  52. 18446742441621999611=4294966981*4294967231
  53. 18446742647780414699=4294966981*4294967279
  54. 18446742699320018471=4294966981*4294967291
  55. 18446741505319198009=4294966997*4294966997
  56. 18446741642758141913=4294967029*4294966997
  57. 18446741891866227739=4294967087*4294966997
  58. 18446741994945435667=4294967111*4294966997
  59. 18446742132384379571=4294967143*4294966997
  60. 18446742209693785517=4294967161*4294966997
  61. 18446742329952861433=4294967189*4294966997
  62. 18446742364312597409=4294966997*4294967197
  63. 18446742510341475307=4294966997*4294967231
  64. 18446742716499891163=4294967279*4294966997
  65. 18446742768039495127=4294966997*4294967291
  66. 18446741780197086841=4294967029*4294967029
  67. 18446742029305174523=4294967087*4294967029
  68. 18446742132384383219=4294967029*4294967111
  69. 18446742269823328147=4294967029*4294967143
  70. 18446742347132734669=4294967161*4294967029
  71. 18446742467391811481=4294967029*4294967189
  72. 18446742501751547713=4294967197*4294967029
  73. 18446742647780426699=4294967029*4294967231
  74. 18446742853938844091=4294967029*4294967279
  75. 18446742905478448439=4294967029*4294967291
  76. 18446742278413265569=4294967087*4294967087
  77. 18446742381492475657=4294967087*4294967111
  78. 18446742518931422441=4294967087*4294967143
  79. 18446742596240830007=4294967087*4294967161
  80. 18446742716499908443=4294967087*4294967189
  81. 18446742750859645139=4294967087*4294967197
  82. 18446742896888526097=4294967087*4294967231
  83. 18446743103046946273=4294967279*4294967087
  84. 18446743154586551317=4294967087*4294967291
  85. 18446742484571686321=4294967111*4294967111
  86. 18446742622010633873=4294967111*4294967143
  87. 18446742699320041871=4294967161*4294967111
  88. 18446742819579120979=4294967111*4294967189
  89. 18446742853938857867=4294967111*4294967197
  90. 18446742999967739641=4294967231*4294967111
  91. 18446743206126160969=4294967279*4294967111
  92. 18446743257665766301=4294967291*4294967111
  93. 18446742759449582449=4294967143*4294967143
  94. 18446742836758991023=4294967143*4294967161
  95. 18446742957018071027=4294967189*4294967143
  96. 18446742991377808171=4294967143*4294967197
  97. 18446743137406691033=4294967143*4294967231
  98. 18446743343565113897=4294967279*4294967143
  99. 18446743395104719613=4294967143*4294967291
  100. 18446742914068399921=4294967161*4294967161
  101. 18446743034327480429=4294967189*4294967161
  102. 18446743068687217717=4294967161*4294967197
  103. 18446743214716101191=4294967161*4294967231
  104. 18446743420874524919=4294967279*4294967161
  105. 18446743472414130851=4294967161*4294967291
  106. 18446743154586561721=4294967189*4294967189
  107. 18446743188946299233=4294967189*4294967197
  108. 18446743334975183659=4294967189*4294967231
  109. 18446743541133608731=4294967189*4294967279
  110. 18446743592673214999=4294967189*4294967291
  111. 18446743223306036809=4294967197*4294967197
  112. 18446743369334921507=4294967197*4294967231
  113. 18446743575493346963=4294967279*4294967197
  114. 18446743627032953327=4294967291*4294967197
  115. 18446743515363807361=4294967231*4294967231
  116. 18446743721522234449=4294967279*4294967231
  117. 18446743773061841221=4294967291*4294967231
  118. 18446743927680663841=4294967279*4294967279
  119. 18446743979220271189=4294967279*4294967291
  120. 18446744030759878681=4294967291*4294967291
复制代码
用时:78秒(平均每个数据用时0.65秒)

该代码编译出来的可执行程序:

A.rar (7.32 KB, 下载次数: 12)

评分

参与人数 1贡献 +3 收起 理由
gxqcn + 3 有代码,有测试,非常好!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-1-27 07:30:01 | 显示全部楼层
我还没去做。以后可以作个对比参考,谢谢!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-28 10:45 , Processed in 0.073163 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表