U 75483【シミュレーション問題1】ひまわり数(個人問題庫)-問題解


タイトル:https://www.luogu.org/problem/U75483
#include
using namespace std;
bool p[20001];
int n,num,maxn=0,ans=0,tmp;
int main()
{
	cin>>n;
	memset(p,true,sizeof(p));
	p[0]=p[1]=false;
	for(int i=2;i<=20000;i++)
	{
		if(p[i])
		{
			for(int j=i;j<=20000/i;j++)
				p[i*j]=false;
		}
	} // 
	for(int i=1;i<=n;i++)
	{
		cin>>num;
		for(int j=num;j>=2;j--)
			if(p[j]&&num%j==0)
			{
				tmp=j;
				break;
			} 
		if(num>1&&maxn<tmp)
		{
			maxn=tmp;
			ans=num; 
		} 
	} 
	cout<<ans<<endl;
	return 0; 
}