#10788. 数论【NOIP2010】哥德巴赫猜想

数论【NOIP2010】哥德巴赫猜想

1. 【NOIP2010】哥德巴赫猜想

哥德巴赫猜想是指任一大千2的偶数都可以写成两个质数之和。编写程序验证任一大于2且不超过n的偶数都能写成两个质数之和。

补全程序:

#include<iostream>
using namespace std;
int main() {
    const int SIZE=1000;
    int n, r, p[SIZE], i, j, k, ans;
    bool tmp;
    cin >> n;
    r = 1;
    p[1] = 2;
    for (i = 3; i <= n; i++) {
        ① ;
        for (j = 1; j <= r; j++)
            if (i % ② == 0) {
                tmp = false;
                break;
            }
        if (tmp) {
            r++;
            ③ ;
        }
    }
    ans = 0;
    for (i = 2; i <= n / 2; i++) {
        tmp = false;
        for (j = 1; j <= r; j++)
            for (k = j; k <= r; k++)
                if (i + i == ④) {
                    tmp = true;
                    break;
                }
        if (tmp)
            ans++;
    }
    cout << ans << endl;
    return 0;
}

选择题:

  1. ①处应填( )
    {{ select(1) }}
  • k=0
  • p[i]=i
  • tmp=true
  • p[i]=r
  1. ②处应填( )
    {{ select(2) }}
  • p[j]
  • p[n]
  • n
  • j
  1. ③处应填( )
    {{ select(3) }}
  • p[r]=i
  • p[j]=i
  • tmp=true
  • ans++
  1. ④处应填( )
    {{ select(4) }}
  • j+k
  • p[j]+p[k]
  • p[j]
  • p[k]
  1. ⑤处应填( )
    {{ select(5) }}
  • 2010
  • 1005
  • 2009
  • 1004