#include
using namespace std;
#include
int f(int n)//判断n是否为素数,是则返回1,否则返回0
{
if(n<2)return 0;
int i=2;
while(i<=sqrt(n))
if (n%i++==0)return 0;
return 1;
}
void main()
{
int m=1,count=0;
while(m<=100000)
{
if (f(m))count++;
m++;
}
cout<<"100000以内有"<
#include
#include "math.h"
using namespace std;
int sushu(int n)
{
int i;
for (i=2;i<=sqrt(n);++i)
if (n%i==0)
return 0;
return 1;
}
int main()
{
int i,c=0;
for (i=2;i<=10000;++i)
if (sushu(i))
++c;
cout<
}
#include
using namespace std;
int main(){
bool a[100000]={};
int t=0;
for(int i=2;i<100000;i++)
if(a[i]==0)
{
t++;
for(int k=2;i*k<100000;a[i*k]=1,k++);
}
cout<
筛法求素数
欧拉筛不更好吗
#include
}inline void WORK(){ for(register int i=2;i
}
}
}inline void PRINT(){ int m; scanf("%d",&m); while(m--){ int x; scanf("%d",&x); if(p[x]==x)cout<<"Yes\n"; else cout<<"No\n";
}
}int main(){
INIT();
WORK();
PRINT(); return 0;
}
这里把100000输入,就能把10000以内的素数保存在数组b中.
突然感觉题主想要的应该是素数筛法。
就是直接生成素数,而不是一个一个数判断是不是素数。
这个效率确实币一个一个判断的nlogn要快很多。