C++ 素数对猜想
标签:pac idt ret 筛法 std 一个 mil str https
我的解法是先将2到n的所有素数全部列出来,再计算。将全部的素数列出来用了一个叫“埃拉托色尼筛法”的方法。
算法参照这里:https://www.sohu.com/a/252674565_614593
1 #include 2 #include 3 #include 4
5 using namespace std;
6
7 int main()
8 {
9 int n;
10 cin >> n;
11
12 vectorint> arr;
13 arr.reserve(n+1);
14 for(int i = 2;i i)
15 {
16 arr[i] = i;
17 }
18
19 double a = sqrt(n);
20 //得到所有的素数
21 for(int i = 2;i i)
22 {
23 for(int j = 2;j*i )
24 {
25 arr[i*j] = 0;
26 }
27 }
28
29 int time = 0;
30 for(int i = 2;i+2 i)
31 {
32 if(arr[i+2]-arr[i] == 2)
33 {
34 time++;
35 }
36 }
37 cout time;
38 return 0;
39 }
C++ 素数对猜想
标签:pac idt ret 筛法 std 一个 mil str https
原文地址:https://www.cnblogs.com/apprendre-10-28/p/12732268.html
文章来自:
搜素材网的
编程语言模块,转载请注明文章出处。
文章标题:
C++ 素数对猜想
文章链接:http://soscw.com/index.php/essay/54298.html
评论