会员
周边
捐助
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
Derek_nr
博客园
首页
新随笔
联系
管理
订阅
C++验证歌德巴赫猜想
C++验证歌德巴赫猜想
在100到1000中验证哥德巴赫猜想(任何一个不小于6的偶数都能分解为两个素数之和)。最需要注意的是参数生存期的问题。
Code
/**/
/*
算法说明:将偶数n分为3和(n-3),然后验证它们是否为素数,如果不都是素数,则小的数加2,大的数减2,继续判断。
*/
#include
<
iostream
>
#include
<
cmath
>
using
namespace
std;
int
IsPrim(
double
x)
//
判断x是否为质数,在VSTS2008中sqrt()中的参数的可用类型中没有int型
{
int
i
=
2
;
for
(;i
<=
sqrt(x);i
++
)
{
if
((
int
)x
%
i
==
0
)
return
0
;
return
1
;
}
}
int
Operation(
int
n)
{
int
x
=
3
;
int
y
=
n
-
3
;
while
((
!
IsPrim(x))
||
(
!
IsPrim(y)))
{
x
+=
2
;
y
-=
2
;
if
(x
>
y)
{
cout
<<
"
Error!
"
<<
endl;
return
-
1
;
}
}
cout
<<
n
<<
"
=
"
<<
x
<<
"
+
"
<<
y
<<
endl;
return
0
;
}
int
main()
{
int
n
=
100
;
for
(;n
<=
1000
;n
+=
2
)
Operation(n);
return
0
;
}
posted @
2008-09-29 11:17
Derek_nr
阅读(
562
) 评论(
0
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部
公告