فهرست منبع

素数打表,区间映射判断素数

jal 5 سال پیش
والد
کامیت
f646f7d785
1فایلهای تغییر یافته به همراه32 افزوده شده و 0 حذف شده
  1. 32 0
      A.cpp

+ 32 - 0
A.cpp

@@ -0,0 +1,32 @@
+//
+// Created by jal on 2019-05-01.
+//
+
+#include<bits/stdc++.h>
+using namespace std;
+int main(){
+    int l,r;
+    cin >> l >> r;
+    int n = r - l + 1;
+    vector<bool>a(n, true);
+    vector<int>prime;
+    int m = sqrt(r);
+    vector<bool>f(m+1, true);
+    for(int i = 2; i <= m; i++){
+        if(f[i]){
+            prime.push_back(i);
+        }
+        for(int j = 0; j < prime.size() && prime[j]*i <= m; j++){
+            f[prime[j]*i] = false;
+        }
+    }
+    for(int i = 0; i < prime.size(); i ++){
+        int k = prime[i];
+        for(int j = max(2, (l + k - 1) / k * k); j <= r; j+= k){
+            a[j-l] = false;
+        }
+    }
+    cout << accumulate(a.begin(), a.end(), 0) << endl;
+}
+
+//2100000000 2101000000