首页 > 电脑

c语言编程

更新时间2019-12-01 14:56:10

写两个函数prime和goldbach,前者用于判断一个数是否为素数,后者用于验证哥德巴赫猜想:任何不小于4的偶数,都可表示为两个素数之和(如:4=2+2)。

 

要求与提示:

 

1) main函数负责循环提示用户输入一不小于4的偶数num,并验证num是否满足哥德巴赫猜想。若用户的输入不满足要求,则提示错误原因并要求重新输入。要求循环有退出机制。

验证哥德巴赫猜想的方法:main函数调用goldbach函数,并将num作为实参传递。在goldbach函数中将接收到的参数拆分成两个整数,调用prime函数分别判断这两个整数是否是素数,若二者皆为素数,输出num符合哥德巴赫猜想的信息,并退出寻找过程。


程序参考

#include <stdio.h>

#include <math.h>

int prime(int n)

{

    int i, k;

    k = (int)sqrt((double)n); //提高效率

    if(n < 2) //2以下不能是素数

        return 0;

    for(i = 2; i <= k; i++)

        {

            if(n % i == 0)

                return 0;

        }

    return 1;

}

void goldbach(int n)  //哥德巴赫猜想

{

    int i,j;

    for(i = 2; i <= n /2; i++)

        {

            j=n-i;

            if (prime(i) && prime(j))

                {

                    printf("%d=%d+%d ", n, i, j);

                    return ;

                }

        }

}

int main(void)

{

    int num;

    scanf("%d", &num);

    while(num<4)

        {

            printf("num must >=4 ");

            scanf("%d", &num);

        }

    goldbach(num);

    return 0;

}


相关标签:c语言

上一篇:7.下列程序段的输出是_____

下一篇:多条件if函数,只返回第一个结果