判断素数遇到的问题

1.

未优化的代码

bool isok(long long nn)
{
        if(nn==1)return 0;
	for(int i=2;i*i<=nn;i++)
	{
		if(nn%i==0)return 0;
	}
	return 1;
}

 

优化后的代码   //两倍的速度

bool isok(long long&nn)
{
	if(nn==1)return 0;
	if(nn==2)return 1;
	if(nn%2==0)return 0;
	for(long long i=3;i*i<=nn+2;i+=2)
	if(nn%i==0)return 0;
	return 1;
}

2.

1既不是素数也不是合数    

2是素数

posted @ 2018-07-15 17:05  czh~  阅读(173)  评论(0编辑  收藏  举报