您的位置:首页 > 编程语言 > C语言/C++

C++(MFC)快速计算质数

2011-04-27 14:07 344 查看
此段代码,可以快速计算1~m_iEnd的质数,并保存到list中。

CList<int, int> list;

list.AddTail(2);

int iListLen		  = list.GetCount();
int	iMaxForSearch	= m_iEnd;
int	iStart			  = 3;
int	iFind			    = 0;
POSITION	pos		  = NULL;
double		dSqrt	  = 0.0F;

BOOL	bDevided	= FALSE;

for (int i= iStart; i< iMaxForSearch; i++)
{
iListLen	= list.GetCount();
bDevided	= FALSE;

dSqrt		= sqrt(i);
pos = list.GetHeadPosition();

for (int j= 0; j< iListLen; j++)
{
iFind	= list.GetNext(pos);

if(i % iFind == 0)
{
bDevided	= TRUE;
break;
}

if(iFind > (int)dSqrt)
break;
}

if(bDevided == FALSE)
list.AddTail(i);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: