- #include <iostream>
- using namespace std;
- const int maxn = 7005;
- bool prime[maxn];
- int main() {
- ios::sync_with_stdio(0);
- cin.tie(0);
- for (int i = 2; i <= maxn; i++) {
- prime[i] = true;//預設2-7005都是質數
- }
- prime[0] = false;
- prime[1] = false;
- for (int i = 2; i * i <= maxn; i++) {//如果i是2,迴圈就跑到2*2( 必須<=7005)
- if (prime[i]) {
- for (int j = i + i; j < maxn; j += i) {
- prime[j] = false;//從2開始檢查,如果i是質數它的倍數(<7005)就不是質數
- }
- }
- }
- int T, A, B;
- cin >> T; //幾組測資
- while (T--) {
- cin >> A >> B;
- int sum = 0;
- for (int i = A; i <= B; i++) {
- if (!prime[i]) sum += i;//如果i不是質數,就加到sum去
- }
- cout << sum << "\n";
- }
- return 0;
- }
複製代碼 |