用筛求法求素数

 1 /*筛选法求素数*/
 2 
 3 #include <iostream>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     /*假设prime[i] == 0 是素数, prime[i] == 1是合数*/
 9     int N;
10     cin >> N;            //输入范围
11     int *prime = new int[N];
12     for (int i = 2; i <= N; i++)
13         prime[i] = 0;
14 
15     /*筛选掉所有可以被拆分成两个因数相乘的整数*/
16     for (int i = 2; i <= N; i++)
17     if (prime[i] == 0)            //防止重复筛选同一个数
18     for (int j = 2; j < N; j++)
19         prime[i * j] = 1;
20 
21     for (int i = 2; i <= N; i++)
22     if (prime[i] == 0)
23         cout << i << endl;
24     return 0;
25 }

猜你喜欢

转载自www.cnblogs.com/hi3254014978/p/10424520.html