/* 题目很简单,就是输出N个数素数因子最大的那一个, 预出来一下就OK 换了一种写代码的风格,开始好好联系java */ import java.util.*; import java.io.*; import java.math.*; public class Main2710 { static final int N = 20005; static int prime[] = new int[N]; static boolean hash[] = new boolean[200]; static int fat[] = new int[200]; static int p; public static void main(String[] args){ Scanner cin = new Scanner(System.in); int n; Prime(); MaxFat(); while( cin.hasNext()){ n = cin.nextInt(); int a; int b = 0; int max = -1; while(n-- > 0){ a = cin.nextInt(); if(max < prime[a]){ max = prime[a]; b = a; } } System.out.println(b); } } static void Prime(){ Arrays.fill(hash, (boolean)false); int tt = (int)Math.sqrt(200.0); for(int i = 2; i < tt; i++) if(!hash[i]) for(int j = 2; j * i < 200; j++) hash[j * i] = true; p = 0; for(int i = 2; i < 200; i++){ if(!hash[i]) fat[p++] = i; } } static void MaxFat(){ for(int i = 2; i < N; i++){ int max = -1; int temp = i; for(int j = 0; j < p; j++) { if(temp % fat[j] != 0) continue; if(max < fat[j]) max = fat[j]; while(temp % fat[j] == 0){ temp /= fat[j]; } } if(temp > 1 && max < temp) max = temp; prime[i] = max; } } }