楼主: chaochao

[胡扯] 蛋疼数学程序帝!质数算法。

 火   [复制链接]
梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
回帖
5038

贵宾

发表于 2010-6-27 15:57:16 | 显示全部楼层
其实从来就不懂效率这东西的人飘过了……{:nm_8:}
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

CHAOS

梦石
0
星屑
92
在线时间
244 小时
注册时间
2005-11-4
回帖
3418

贵宾

 楼主| 发表于 2010-6-27 17:34:43 | 显示全部楼层
  1.     public class suanfa1
  2.     {
  3.         private DateTime startDateTime;
  4.         public DateTime StartDateTime
  5.         {
  6.             get { return startDateTime; }
  7.             set { startDateTime = value; }
  8.         }
  9.         private DateTime endDateTime;
  10.         public DateTime EndDateTime
  11.         {
  12.             get { return endDateTime; }
  13.             set { endDateTime = value; }
  14.         }
  15.         private List<ulong> number;
  16.         public List<ulong> Number
  17.         {
  18.             get { return number; }
  19.             set { number = value; }
  20.         }
  21.         public void getzhishu(ulong max)
  22.         {
  23.             number = new List<ulong>();
  24.             number.Add(2);
  25.             number.Add(3);
  26.             for (ulong i = 3; i < max; i+=2)
  27.             {
  28.                 if (iszhishu(i, number))
  29.                 {
  30.                     number.Add(i);
  31.                 }
  32.             }
  33.         }
  34.         private bool iszhishu(ulong i, List<ulong> number)
  35.         {
  36.             ulong hi=i/2;
  37.             ulong num = 0;
  38.             for (int j = 0; j < number.Count; j++)
  39.             {
  40.                 num = number[j];
  41.                 if (num > hi) return true;
  42.                 if (i % num == 0)
  43.                 {
  44.                     return false;
  45.                 }
  46.             }
  47.             return true;
  48.         }
  49.         //程序入口
  50.         public static void Main(string[] args)
  51.         {
  52.             ulong max = 100000;
  53.             suanfa1 sf1 = new suanfa1();
  54.             sf1.StartDateTime = DateTime.Now;
  55.             sf1.getzhishu(max);
  56.             sf1.EndDateTime = DateTime.Now;
  57.             int count = sf1.Number.Count;
  58.             StringBuilder sb = new StringBuilder();
  59.             for (int i = 0; i < count; i++)
  60.             {
  61.                 sb.AppendLine("" + sf1.Number[i]);
  62.             }
  63.             System.Console.Out.Write(sb.ToString());
  64.             System.Console.Out.WriteLine("");
  65.             System.Console.Out.WriteLine("用时:" + ((sf1.EndDateTime.Ticks - sf1.StartDateTime.Ticks) / 10000) + "毫秒");
  66.         }
  67.     }
复制代码
以上代码100000以内0.7秒左右,1000000以内大约40秒……嘛嘛……什么时间的无视好了,反正速度和机器好坏有关。
第一层循环的方法还可以继续优化,通过更快的算法可以找出有质数嫌疑的数字然后再去判断,这样计算效率会更高,明天再来研究看看吧,一天都没睡觉了,现在头昏脑胀的……
梦想世界,在你伸手!
回复

使用道具 举报

有事烧纸

梦石
0
星屑
154
在线时间
509 小时
注册时间
2005-10-22
回帖
6429

贵宾VX城市地图大赛冠军第1届RMTV比赛冠军第1届TG大赛冠军

发表于 2010-6-27 17:53:28 | 显示全部楼层
其实查表法才是最快的~~~
神隐中,偶尔诈尸
回复

使用道具 举报

梦石
0
星屑
50
在线时间
47 小时
注册时间
2009-8-30
回帖
442
发表于 2010-6-27 18:06:19 | 显示全部楼层
百度一下,你就知道
回复

使用道具 举报

梦石
0
星屑
50
在线时间
0 小时
注册时间
2010-6-18
回帖
167
发表于 2010-6-27 18:06:52 | 显示全部楼层
回复 chaochao 的帖子


    java的 {:nm_6:} 貌似java的效率本身就比C要低些
回复

使用道具 举报

梦石
0
星屑
50
在线时间
47 小时
注册时间
2009-8-30
回帖
442
发表于 2010-6-27 18:08:17 | 显示全部楼层
制作格斗游戏用拳头效率最高
回复

使用道具 举报

梦石
0
星屑
50
在线时间
0 小时
注册时间
2010-6-18
回帖
167
发表于 2010-6-27 18:09:55 | 显示全部楼层
回复 bzzdhm 的帖子

说起格斗游戏 KOF是神作
   
回复

使用道具 举报

梦石
0
星屑
50
在线时间
47 小时
注册时间
2009-8-30
回帖
442
发表于 2010-6-27 18:13:18 | 显示全部楼层
反正我不玩格斗游戏……
我们这学校最流行的格斗游戏就是后操场
回复

使用道具 举报

梦石
0
星屑
50
在线时间
0 小时
注册时间
2010-6-27
回帖
20
发表于 2010-6-27 18:15:07 | 显示全部楼层
嗯  我还记得那次和豌豆射手玩真实格斗游戏的说
结果我都不能攻击 就那样被KO了 TAT

点评

你直接把他放进你自己身体里,这样他就没办法格斗了嘛。  发表于 2010-6-28 04:51
南瓜有一阵子没有听到侄子雷福德的消息了。显然,他的侄子是个大明星,某种……叫什么来着……体育英雄?幻幻球高手?南瓜不甚了解,他只是做好自己的事情。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
0 小时
注册时间
2010-6-18
回帖
167
发表于 2010-6-27 18:19:50 | 显示全部楼层
回复 南瓜头 的帖子


    你可以和睡莲或者花盆玩嘛,坚果墙也行{:nm_6:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部