//====================================================================
// One of @C24zhengfujia's program
// Copyright (C) 2024 C24zhengfujia, All rights reserved.
// This file is posted on zxoj.net.
// This code is distributed in the hope that it will be useful,
// but DO NOT COPY ANYTHING; if you've been punished or been
// kicked out because you copied something. No people but YOU have to handle this issue.
// See zxoj.net or visit Ms He for more details.
/*
* This is one of @C24zhengfujia's program.
*/
//
// zxoj.net/d/ybtqm/blog/201/67090c45f2e492a8081f1aed #Primes Sorter,2024-10-10
//
//Signature:C24zhengfujia
//====================================================================
//====================================================================
// @C24zhengfujia的作品之一
// 版权所有(C)2024 C24zhengfujia,保留所有权利。
// 此文件发布在zxoj.net上。
// 分发此代码是希望它有用,
// 但不要复制任何东西;如果你受到了惩罚或
// 被开除是因为你抄袭了一些东西。除了你,没有人必须处理这个问题。
// 请访问zxoj.net或找何老师以获取更多详细信息。
/*
* 这是@C24zhengfujia的作品之一。
*/
//
// zxoj.net/d/ybtqm/blog/201/67090c45f2e492a8081f1aed #素数筛(线性筛),2024-10-10
//
// 签字:C24zhengfujia
//====================================================================
#include<cstdio>
#define MAXN 100010 //定义常量
using namespace std;
int primes[MAXN],inp,n,pin=0;//primes做线性表,pin为primes长度
bool notprime[MAXN]={};//bool核心
int main()
{
notprime[0]=notprime[1]=true;//排除0,1
for(int i=2;i<MAXN;++i)//从2开始算
{
if(!notprime[i])//i是素数就标记
primes[pin++]=i;
for(int j=0;i*primes[j]<MAXN;++j)//j是从primes取数的索引
{
notprime[i*primes[j]]=true;//筛出合数就排除
if(i%primes[j]==0)//重复运算就退出
break;
}
}
scanf("%d",&n);
while(n--)
{
scanf("%d",&inp);//乱序输入,不用存
if(!notprime[inp])
printf("%d ",inp);
}
return 0;//完结,撒花✿✿ヽ(°▽°)ノ✿
}