纠结了很久,才想到用筛选法找素数的方法做出,不容易啊!
对于别人是水题啊……T_T……
贴个代码:
#include <iostream>
using namespace std;
int main()
{
int t,n,hash[32778];
int i,j,count;
cin>>t;
while(t--)
{
count=0;
memset(hash,0,sizeof(hash));
cin>>n;
for(i=2;i<=n;i++)
{
if(n%i==0){
for(j=i;j<n;j+=i)
hash[j]=1;
}
}
for(i=2;i<=n;i++)
if(hash[i]==0)
count++;
cout<<count<<endl;
}
return 0;
}
本文介绍了一种使用筛选法来找出指定范围内素数数量的算法实现,并提供了一个具体的C++代码示例。该方法通过标记合数来确定哪些数是素数。
6400

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



