int fun(int m,int *xx){
bool isprime[MAXN];
int top=0;
memset(isprime,true,sizeof(isprime));
for(int i=2;i<=m;i++){
if (!isprime[i]) xx[top++]=i;
else
for(int j=i*i;j<=m;j+=i)
isprime[j]=false;
}
return top;
}
应该没有写错,没检查了