习题6-5 使用函数验证哥德巴赫猜想(C语言实现)

#include <stdio.h>
#include <math.h>

int prime( int p );
void Goldbach( int n );

int main()
{
    int m, n, i, cnt;

    scanf("%d %d", &m, &n);
    if ( prime(m) != 0 ) printf("%d is a prime number\n", m);
    if ( m < 6 ) m = 6;
    if ( m%2 ) m++;
    cnt = 0;
    for( i=m; i<=n; i+=2 ) {
        Goldbach(i);
        cnt++;
        if ( cnt%5 ) printf(", ");
        else printf("\n");
    }

    return 0;
}

/* 你的代码将被嵌在这里 */
int prime( int p )
{
	int i;
	if(p<2)
		return 0;
	if(p == 2)
		return 1;
	if(p%2 == 0)
		return 0;
	for(i=3; i*i<=p; i++)
		if(p%i == 0)
			return 0;
	return 1;
}

void Goldbach( int n )
{
	int i;
	if(n%2 == 0)//偶数
	{
		for(i=3; i<n; i+=2)
			if(prime(i) && prime(n-i))
			{
				printf("%d=%d+%d",n,i,n-i);
				break;
			}
	}
}

更多推荐

使用函数验证哥德巴赫猜想(C语言实现)