いくつかの小さなノートをテーマに

素数

説明] Nのタイトル - M +の数nにプライム

[解決]レポート

「時々、数論の主題の複雑さはそれほど大きくない、実際には、素晴らしく見えました。」

コードを参照してください。

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e6 + 3;
ll n, m, pr[N], tot, s[N];
bool vis[N];
int main() {
    int T;
    scanf("%d", &T);
    while (T--) {
        scanf("%lld%lld", &n, &m);
        memset(vis, 0, sizeof vis);
        tot = m + 1;
        for (ll i = 2; i <= 1e6 && i <= n + m; i++)
            for (ll j = (n / i) * i; j <= n + m; j += i)  //保证跳到的都是合数
                if (j >= n && j != i && !vis[j - n]) {
                    vis[j - n] = 1; 
                    tot--;  //素数的个数等于总数-合数
                }
        printf("%lld\n", tot);
    }
    return 0;
}

おすすめ

転載: www.cnblogs.com/phemiku/p/11802954.html