下载了第二个测试点,在编译器上跑了一遍,输出对的,也没有错误信号。提交后,全部是received signal6:Aborted/IOT trap
#include<cstdio>
using namespace std;
bool func(int n){
bool *a=new bool[n/2];
int j=n/2;
for(int i=0;i<j;i++){
a[i]=0;
}
if(n==1||n==4){
delete[] a;
return 0;
}
for(int i=2;i<j;i++){
if(a[i]==1){
continue;
}
if(n%i!=0){
for(int k=1,b=0;b<j;k++){
b=i*k;
a[b]=1;
}
}else{
delete[] a;
return 0;
}
}
delete[] a;
return 1;
}
int main(){
int n,j=0;
scanf("%d",&n);
int *a=new int[n];
int temp;
for(int i=0;i<n;i++){
scanf("%d",&temp);
if(func(temp)==1){
a[j]=temp;
j++;
}
}
for(int i=0;i<j;i++){
printf("%d ",a[i]);
}
delete[] a;
return 0;
}
请求大佬支援