文章

85

粉丝

0

获赞

394

访问

7.8k

头像
素数 题解:
P1375 北京航空航天大学机试题
发布于2026年3月5日 13:03
阅读数 55

#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

const int MAXN = 10001;
// is_prime[i] 为 true 表示 i 是素数
bool is_prime[MAXN];

void sieve() {
    
    fill(is_prime, is_prime + MAXN, true);
    is_prime[0] = is_prime[1] = false;

    for (int i = 2; i * i < MAXN; i++) {
        if (is_prime[i]) {
            for (int j = i * i; j < MAXN; j += i) {
                is_prime[j] = false;
            }
        }
    }
}

int main() {
    sieve(); 

    int n;
    while (cin >> n) {
        vector<int> results;
        for (int i = 2; i < n; i++) {
            if (is_prime[i] && i % 10 == 1) {
                results.push_back(i);
            }
        }
        if (results.empty()) {
            cout << -1 << endl;
        } else {
            for (int i = 0; i < results.size(); i++) {
                cout << results[i] << (i == results.size() - 1...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发