PCPC12J - Amr Samir

no tags 

 

Amr started to learn division. So he gave a list of numbers to his friend and asked him to find all the divisors of each number in the given list. Now Amr has a new list of numbers containing all divisors of his original list. 
As Amr loves playing with numbers, he now thinks about the repeated numbers in the new list of divisors. However this time Amr is interested in the luckiest divisor!
Lucky divisor is defined by Amr as follows: a divisor D is lucky if D divides f, where f is the frequency of this number D in the new list. Obviously f must be greater than zero.
The luckiest divisor is the divisor D that divides f where f is the maximum and D is the smallest one.
Since Amr is too lazy to write a program that solves this problem, he decided to submit it to the PCPC chief judge to put it as a problem for the teams to write a solution to it. Can you write this program for Amr?
Input Specification
The first line contains a positive integer t <= 100, then follow t test cases. Each test case start with a line containing a single positive integer n <= 10000 number of divisors in Amr’s new list, then follows n positive integers a1, ai, …an (ai<= 100).
Output Specification
Your code should print an integer for each test case representing the luckiest divisor or -1 if there is no lucky divisor.
Sample Input
2
5
2 2 3 3 3
7
2 2 2 2 3 3 3
Sample Output
3
2

 

Amr started to learn division. So he gave a list of numbers to his friend and asked him to find all the divisors of each number in the given list. Now Amr has a new list of numbers containing all divisors of his original list. 

As Amr loves playing with numbers, he now thinks about the repeated numbers in the new list of divisors. However this time Amr is interested in the luckiest divisor!

Lucky divisor is defined by Amr as follows: a divisor D is lucky if D divides f, where f is the frequency of this number D in the new list. Obviously f must be greater than zero.

The luckiest divisor is the divisor D that divides f where f is the maximum and D is the smallest one.

Since Amr is too lazy to write a program that solves this problem, he decided to submit it to the PCPC chief judge to put it as a problem for the teams to write a solution to it. Can you write this program for Amr?

Input Specification

The first line contains a positive integer t <= 100, then follow t test cases. Each test case start with a line containing a single positive integer n <= 10000 number of divisors in Amr’s new list, then follows n positive integers a1, ai, …an (ai<= 100).

Output Specification

Your code should print an integer for each test case representing the luckiest divisor or -1 if there is no lucky divisor.

Sample Input

2

5

2 2 3 3 3

7

2 2 2 2 3 3 3

Sample Output

3

2

 

 


hide comments
pulkitgulati: 2016-07-04 20:13:57

Last edit: 2016-12-16 11:37:44
mkfeuhrer: 2016-06-17 11:46:50

hashing !! easy :-)

KD : 2016-05-26 19:05:39

hashing rocks!!!!! AC in one go

Beta Projects: 2015-10-12 10:06:55

@abhi_vicky: 2

abhi_vicky: 2015-08-18 20:11:23

what is the output of
7
100 100 100 100 2 1 2
is it -1 or 2?

anuveshkothari: 2015-08-17 12:33:43

@jaydeep \n after each test case

Last edit: 2015-08-17 12:34:00
Anant Upadhyay: 2015-08-16 18:01:48

easy logic....

Last edit: 2015-08-16 18:07:31
Jaydeep Khandelwal: 2015-08-16 12:13:07

in output, after each test case \n or \n\n ????????

anuveshkothari: 2015-08-14 00:34:13

@rohit comment helps
although it took lots of time to understand the comment

adi_tri: 2015-08-13 21:22:49

accepted in one go.......:-)


Added by:abdelkarim
Date:2012-12-28
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64
Resource:The First Palestinian Collegiate Programming Contest