// sf5.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "time.h"
#include "iostream"
#include "list"
#include "queue"
#define N 1000
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int i;
std::list<int> l1;
std::queue<int> q1;
for(i=2;i<=N;i++)
{ l1.push_back(i);}
list<int>::iterator iter;
list<int>::iterator iter1;
/*
for(iter=l1.begin();iter!=l1.end();iter++)
{
cout<<*iter<<" ";
}
*/
iter=l1.begin();
while(!l1.empty())
{
int point1;
iter=l1.begin();
q1.push(*iter);
point1=*iter;
l1.pop_back();
for(iter1=l1.begin();iter1!=l1.end();iter1++)
{
if((*iter1)%point1==0)
{l1.erase(iter1);}
}
iter++;
}
while(!q1.empty()) {
std::cout << q1.front() << std::endl;
q1.pop();
}
}
(7)筛选求质数
最新推荐文章于 2024-08-21 17:57:20 发布
本文通过C++实现了一个简单的素数筛选算法,使用了标准模板库(STL)中的list和queue容器来高效地找出小于等于1000的所有素数。代码首先将2到N之间的整数存入list中,然后迭代移除每个素数的倍数。

1267

被折叠的 条评论
为什么被折叠?



