結果
問題 | No.1657 Sum is Prime (Easy Version) |
ユーザー |
![]() |
提出日時 | 2025-03-26 16:01:38 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 50 ms / 2,000 ms |
コード長 | 1,402 bytes |
コンパイル時間 | 806 ms |
コンパイル使用メモリ | 84,860 KB |
実行使用メモリ | 7,324 KB |
最終ジャッジ日時 | 2025-03-26 16:01:52 |
合計ジャッジ時間 | 2,086 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 |
ソースコード
#include <iostream>#include <vector>#include <cmath>using namespace std;const int MAX_SUM = 2000000;// Hàm sàng Eratosthenes để đánh dấu số nguyên tốvector<bool> sieve(int max_val){vector<bool> is_prime(max_val + 1, true);is_prime[0] = is_prime[1] = false;for (int i = 2; i <= sqrt(max_val); ++i){if (is_prime[i]){for (int j = i * i; j <= max_val; j += i){is_prime[j] = false;}}}return is_prime;}int count_valid_pairs(int L, int R){// Khởi tạo mảng đánh dấu số nguyên tốvector<bool> is_prime = sieve(MAX_SUM);int count = 0;// Duyệt qua các giá trị của A từ L đến Rfor (int A = L; A <= R; ++A){int total_sum = 0;// Duyệt qua các giá trị của B từ A đến Rfor (int B = A; B <= R; ++B){total_sum += B;// Kiểm tra nếu tổng là số nguyên tốif (total_sum > MAX_SUM)break; // Nếu tổng vượt quá MAX_SUM, ngừng kiểm traif (is_prime[total_sum]){count++;}}}return count;}int main(){int L, R;cin >> L >> R;int result = count_valid_pairs(L, R);cout << result << endl;return 0;}