我的code:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<string>
#include<algorithm>
#include<iomanip>
using namespace std;
bool vis[100010],n,a[201];//true表示非素数,false表示素数
void zhi_shu_shai()
{
vis[1]=true;
for(int i=2;i<=100010;++i)
if(vis[i]==false)
for(int j=2*i;j<=100010;j+=i)
vis[j]=true;
}
int main()
{
// freopen("su_shu_shai.in","r",stdin);
// freopen("su_shu_shai.out","w",stdout);
zhi_shu_shai();
scanf("%d",&n);
for(int i=1;i<=n;++i)
scanf("%d",&a[i]);
for(int i=1;i<=n;++i)
if(vis[a[i]]==false)
cout<<a[i]<<" ";
fclose(stdin);
fclose(stdout);
return 0;
}
问题如下: 1.为什么我的程序读入会出错?
2.题目没有交代判重的问题,如果有重复需要判定掉吗?
望dalao解答