60STL_bitset埃拉托斯特尼筛法demo
示例代码
示例代码
#include <iostream>
#include <bitset>
#include <cmath>
using namespace std
;
int main()
{
int const max_number(10000000);
int const max_test((int)sqrt(double(max_number
)));
bitset
<max_number
+1> numbers
;
numbers
.set();
numbers
[1] = 0;
for(int i(1); i
!= max_test
; ++i
)
{
if(numbers
[i
])
{
for(int j
= i
*i
; j
<max_number
+1; j
+=i
)
{
numbers
[j
] = 0;
}
}
}
cout
<< "The number of primes less than " << max_number
+ 1
<< " is " << numbers
.count() << ".\n\n";
return 0;
}
转载请注明原文地址: https://win8.8miu.com/read-1549264.html