在 Stroustrup 的编程:使用 C++ 的原则和实践,第 4 章,练习 13 中,我必须编写一个程序来使用 Erathostenes 筛法查找给定范围内的所有素数。
到目前为止,我想出了这个:
vector<int> values;
void initialize_values()
{
for (int i{0}; i < 100; ++i)
values.push_back(1);
}
void remove_composites(vector<int> values)
{
for(int i{2}; i * i < values.size(); ++i)
{
if (values[i] == 1)
{
for (int p{i + i}; p < values.size(); p += i)
values[p] = 0; //not working
}
}
}
int main()
{
initialize_values();
remove_composites(values);
for (int i{2}; i < values.size(); ++i)
{
if (values[i] …Run Code Online (Sandbox Code Playgroud)