64,685
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<cmath>
using namespace std;
int sushu(int,int*);
int main()
{
const int N=50000;
int a[N/2+1];
int m=sushu(N,a);
for (int i=0;i<=m;i++)
{
cout<<a[i]<<"\t";
}
return 0;
}
int sushu(int n,int a[])
{
if(n>2)
{
int m=sushu(n-1,a);
for(int i=0;a[i]<=sqrt(n);i++)
{
if(n%a[i]==0)
return m;
}
a[++m]=n;
return m;
}
a[0]=2;
return 0;
}
bool isPrime(unsigned int num)
{
if(num==2&&num==3&&num==5) return true;
unsigned long c=7;
if(num%2==0||num%3==0||num%5==0) return false;
int maxc=int(sqrt(num));
while(c <=maxc)
{
if(num%c==0) return false;
c+=4;
if(num%c==0) return false;
c+=2;
if(num%c==0) return false;
c+=4;
if(num%c==0) return false;
c+=2;
if(num%c==0) return false;
c+=4;
if(num%c==0) return false;
c+=6;
if(num%c==0) return false;
c+=2;
if(num%c==0) return false;
c+=6;
}
return true;
}