题解 | #素数三元组#

素数三元组

https://ac.nowcoder.com/acm/contest/75483/C

数论简单知识,不多bibi

#include <bits/stdc++.h>

#define int long long
#define endl '\n'
[[maybe_unused]]const int INF = 1e16 + 50, N = 1e6 + 50;
[[maybe_unused]] typedef std::pair<int, int> pii;
int a[N], primes[N], pos;
bool f[N];

void pre() {
    for (int i = 2; i < N; i++) {
        if (!f[i]) primes[pos++] = i;
        for (int j = 0; primes[j] * i < N; j++) {
            f[primes[j] * i] = true;
            if (i % primes[j] == 0) break;
        }
    }
    for (int i = 0; i < pos; i++)
        if (!f[primes[i] + 2])
            a[primes[i] + 2] = 1;
    for (int i = 1; i < N; i++)
        a[i] += a[i - 1];
}

void solve() {
    int n;
    std::cin >> n;
    std::cout << a[n] << endl;
}

signed main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr), std::cout.tie(nullptr);
    int Lazy_boy_ = 1;
    pre();
    std::cin >> Lazy_boy_;
    while (Lazy_boy_--)
        solve();
    return 0;
}
全部评论

相关推荐

lllllkin:感觉可以精简到一页简历,有些排版感觉不是必须的。 时间线越早的,你自己越熟悉的放前面。描述可以更精简些,一些问题解决感觉可以不用写具体技术栈,卖个关子,等面试官问。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务