c菜鸟,请大家帮忙下,关于哥德巴赫猜想的有关问题。多谢
c初学者,请大家帮忙下,关于哥德巴赫猜想的问题。谢谢。
关于哥德巴赫猜想的问题用c编的话,用调用函数的话,代码如下:
那如果只用嵌套循环的话,该怎么弄,自己也编出来了,但是就是不对,还望各位来指点下,谢谢。
------解决方案--------------------
在这里要简单地组织逻辑就要使用goto
关于哥德巴赫猜想的问题用c编的话,用调用函数的话,代码如下:
#include <stdio.h>
int prime(int n);
int main(void)
{
int m,i;
for(m=6;m<=100;m=m+2)
for(i=2;i<m-1;i++)
if(prime(i)&&prime(m-i)){
printf("%d=%d+%d\n",m,i,m-i);
break;
}
return 0;
}
int prime(int n)
{
int i,flag;
flag=1;
for(i=2;i<=n-1;i++)
if(n%i==0){
flag=0;
break;
}
return flag;
}
那如果只用嵌套循环的话,该怎么弄,自己也编出来了,但是就是不对,还望各位来指点下,谢谢。
------解决方案--------------------
在这里要简单地组织逻辑就要使用goto
#include <stdio.h>
#include<math.h>
int main(void)
{
int m, i,j;
for (m = 6; m <= 100; m = m + 2)
for (i = 2; i < m - 1;){
for (j = 2; j <= sqrt(i); j++){
if (i%j == 0){
goto next;
}
}
for (j = 2; j <= sqrt(m - i); j++){
if ((m - i) % j == 0)
goto next;
}
printf("%d=%d+%d\n", m, i, m - i);
break;
next:++i;
}
return 0;
}