Description
输入 �n 个不大于 105105 的正整数。要求全部储存在数组中,去除掉不是质数的数字,依次输出剩余的质数。
Input
第一行输入一个正整数 �n,表示整数个数。
第二行输入 �n 个正整数 ��ai,以空格隔开。
Output
输出一行,依次输出 ��ai 中剩余的质数,以空格隔开。
Sample 1
Inputcopy | Outputcopy |
---|---|
5 3 4 5 6 7 | 3 5 7 |
Hint
数据保证,1≤�≤1001≤n≤100,1≤��≤1051≤ai≤105。
#include<iostream>
using namespace std;
const int N=1e6+7;
int a[109];
int vis[100009];
int main()
{
vis[1]=1;
for(int i=2;i*i<=100000;i++){
if(vis[i]==1) continue;
for(int j=i*i;j<=100000;j+=i) vis[j]=1;
}
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(vis[a[i]]==0) cout<<a[i]<<" ";
}
}