程序填空题:部分验证哥德巴赫猜想
下面程序部分验证“哥德巴赫猜想”:寻找6到1000间满足“偶数=素数1+素数2”(如10 = 3 + 7,)的所有偶数并打印分解式。
素数指只能被1和自身整除的正整数,如2,3,17等;1不是素数。
```c++
#include
int main()
{ int i, j, n;
int prime(int n);
for ( i=3 ; i<=500; i++ )
for ( j=3; j<=i; j++ )
if ( @@[prime(j) && prime(2*i-j)](2) ) {
printf("%d = %d + %d, ", 2*i, j, 2*i-j);
break;
}
return 0;
}
int prime(int n)
{
int i;
if ( n==1 ) return 0;
for (i=2; i<=n/2; i++)
if ( @@[n%i==0](2) )
return 0;
return @@[1](2);
}
```
答案:
第1空:prime(j) && prime(2*i-j)
第2空:n%i==0
第3空:1
素数指只能被1和自身整除的正整数,如2,3,17等;1不是素数。
```c++
#include
int main()
{ int i, j, n;
int prime(int n);
for ( i=3 ; i<=500; i++ )
for ( j=3; j<=i; j++ )
if ( @@[prime(j) && prime(2*i-j)](2) ) {
printf("%d = %d + %d, ", 2*i, j, 2*i-j);
break;
}
return 0;
}
int prime(int n)
{
int i;
if ( n==1 ) return 0;
for (i=2; i<=n/2; i++)
if ( @@[n%i==0](2) )
return 0;
return @@[1](2);
}
```
答案:
第1空:prime(j) && prime(2*i-j)
第2空:n%i==0
第3空:1