# re: 验证哥德巴赫猜想 回复 更多评论
2006-10-12 21:04 by
#include <stdio.h>
int check(int n)//验证n是否为素数
{
if(n%2==0)
return 0;
for(int i=2;i<n/2;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
void data(int n)
{ int a;
for(int i=2;i<(n/2)+1;i++)
{
a=n-i;
if(check(i)&&check(a))//i ,a 都为素数则输出
{
printf("%d %d %d\n",n,a,i);
break;
}
}
}
void main()
{
for(int i=4;i<=1234;i+=2)
data(i);
}
# re: 验证哥德巴赫猜想 回复 更多评论
2006-10-19 18:01 by
flagp = 1 ;
for(j=2;j<=(int)(sqrt(p));j++) /*判断p是否为素数*/
{
if ((p%j)==0)
{
flagp = 0 ;
break; /*不是素数,退出循环*/
}
}
想明白这一部分是什么意思?
初学,请教一下各位前辈
# re: 验证哥德巴赫猜想 回复 更多评论
2006-11-10 17:19 by
我觉得某些地方应该改一下啊
while(flagp*flagq==0);
上面这一句是不是有些问题????/
# re: 验证哥德巴赫猜想 回复 更多评论
2006-12-07 11:10 by
在我看来,觉得在验证是否为素数时调用个函数,也许会更加 清楚 明白 简洁!!
# re: 验证哥德巴赫猜想 回复 更多评论
2008-03-15 10:12 by
这代码不错,但是假如定义一个函数,并在第一个“p”不是素数时就退出可以执行的更快吧。
# re: 验证哥德巴赫猜想 回复 更多评论
2009-07-03 08:38 by
一个偶数等于2个奇数相加,只要其中质数一个减去一个偶数,另一个奇数加上相同的偶数;最后那个偶数一定等于奇数+奇数。