c++哥德巴赫猜想(升级版)求程序

1个回答

  • 分析:n比较小,考虑制作素数表,枚举方案。#include

    #include

    #include

    #include

    #include

    #include

    using namespace std;

    int n;

    bool isPal[20010];

    void _init(void);

    int main()

    {

    x09cin >> n;

    x09

    x09_init();

    x09

    x09for (int i=2; i

    x09{

    x09x09if (isPal[i])

    x09x09{

    x09x09x09int v = n - i;

    x09x09x09int mid = v >> 1;

    x09x09x09for (int j=2; j

    x09x09x09{

    x09x09x09x09if (isPal[j] isPal[v-j])

    x09x09x09x09{

    x09x09x09x09x09cout << i << ' ' << j << ' ' << v-j << endl;

    x09x09x09x09x09return 0;

    x09x09x09x09}

    x09x09x09}

    x09x09}

    x09}

    x09

    x09return 0;

    }

    inline void _init(void)

    {

    x09memset(isPal, true, sizeof(isPal));

    x09

    x09isPal[1] = false;

    x09

    x09for (int k=2; k

    x09{

    x09x09if (isPal[k])

    x09x09{

    x09x09x09int p = k*2;

    x09x09x09while (p < n)

    x09x09x09{

    x09x09x09x09isPal[p] = false;

    x09x09x09x09p += k;

    x09x09x09}

    x09x09}

    x09}

    }您的采纳是我回答的最大动力!若有疑问可以追问哦!