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<bits/stdc++.h>
#define endl '\n'
#define ll long long
#define int ll
using namespace std;
const int N=1e6+7;
vector<int> v;
map<int,int> mp;
int a[N],b[N];
signed main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int k=1;k<=n;k++)
{
for(int i=2;i*i<100000;i++)
{
if(a[k]==1)continue;
for(int j=i*i;j<100000;j+=i)
{
if(a[k]==j) a[k]=1;
}
}
}
for(int i=1;i<=n;i++)
{
if(a[i]!=1) cout<<a[i]<<' ';
}
return 0;
}