数学算法之-哥德巴赫猜想

Hamsic 2010-01-06 04:49:18
有谁能用最精简的算法 验证 10000以内大于等于6的偶数满足哥德巴赫猜想?
...全文
211 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyi8808 2010-01-06
  • 打赏
  • 举报
回复
10000以内,范围太小了,一般的算法1秒不到就可以得出结果。
波导终结者 2010-01-06
  • 打赏
  • 举报
回复
        private void button1_Click(object sender, EventArgs e)
{
const int Count = 100000;
bool[] iPrime = new bool[Count];
iPrime[0] = true;
for (int i = 2,j=2,k=0; i <= Count; i++)
{
if (iPrime[i - 1]) continue;
k=Count / i;
for (j = 2; j <= k; j++)
{
iPrime[j*i-1] = true;
}
}//得到素数
StringBuilder sOutput=new StringBuilder();
for (int i = 6,j=0; i <= Count; i += 2)
{
for (j = 2; j <= (i / 2); j++)
{
if (iPrime[j-1] || iPrime[i-j-1]) continue;
sOutput.Append(i.ToString() + "=" + j.ToString() + "+" + (i - j).ToString() + "\r\n");
break;//如果要得到多种答案,就将break去掉
}
}
textBox1.Text = sOutput.ToString();
}


我的算法肯定效率不是最高的,这方面没什么研究。你可以参考下面这个链接,最主要的是先得到一个素数表,一个一个除肯定慢死。
http://topic.csdn.net/u/20081221/17/b579f212-8c37-4961-bacd-ddbee9c74b13.html
Hamsic 2010-01-06
  • 打赏
  • 举报
回复
-.- 话说还真麻烦,,
Hamsic 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 alifriend 的回复:]
你这个精简,指的是代码量最少,还是速度最快?
[/Quote]

速度最快
houyizhinv 2010-01-06
  • 打赏
  • 举报
回复
下班了 回去慢慢研究 你们忙
houyizhinv 2010-01-06
  • 打赏
  • 举报
回复
好麻烦啊 心里有底 倒不出来
houyizhinv 2010-01-06
  • 打赏
  • 举报
回复
先把所有的素数弄进一个数组a[N]
bool flag =true;
for(int i=6;i<10000;i++)
{
if(i%2==0)
{
for(int j=0;j<N;j++)
{
for(int k=j;k<N;k++)
{
if(a[j]+a[k]==i)
{

}

}

}
}




}
波导终结者 2010-01-06
  • 打赏
  • 举报
回复
你这个精简,指的是代码量最少,还是速度最快?
houyizhinv 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wartim 的回复:]
引用 5 楼 houyizhinv 的回复:
哥德巴赫是怎么猜的?你告诉我他怎么猜的我就告诉你电脑要怎么猜


我记得就是最终证明一个大素数是由2个小素数组成的,也就是1+1
好了,证吧


[/Quote]
循环循环再循环吧
fengjian_428 2010-01-06
  • 打赏
  • 举报
回复
不知道是干嘛的。
wartim 2010-01-06
  • 打赏
  • 举报
回复
纠正下,写错了
大偶数。。。
wartim 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 houyizhinv 的回复:]
哥德巴赫是怎么猜的?你告诉我他怎么猜的我就告诉你电脑要怎么猜
[/Quote]

我记得就是最终证明一个大素数是由2个小素数组成的,也就是1+1
好了,证吧

liherun 2010-01-06
  • 打赏
  • 举报
回复
你判断奇素数就是一个难题
houyizhinv 2010-01-06
  • 打赏
  • 举报
回复
哥德巴赫是怎么猜的?你告诉我他怎么猜的我就告诉你电脑要怎么猜
liherun 2010-01-06
  • 打赏
  • 举报
回复
拆成2个 每个数想证明都很麻烦的
你哪弄的这么到程序题?
Hamsic 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liherun 的回复:]
穷举呗
[/Quote]

效率不高的。。
liherun 2010-01-06
  • 打赏
  • 举报
回复
穷举呗
Return门徒 2010-01-06
  • 打赏
  • 举报
回复

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧