There is n integer elements. Choose k elements then calculate their GCD, call result X.
What is maximal value of X?
k<=n<=3000, k<=100, elements in range 1..10^10.
Example:
3 2
120
36
100
Sample output
20
There is n integer elements. Choose k elements then calculate their GCD, call result X.
What is maximal value of X?
k<=n<=3000, k<=100, elements in range 1..10^10.
Example:
3 2
120
36
100
Sample output
20
| # | User | Rating |
|---|---|---|
| 1 | Benq | 3792 |
| 2 | VivaciousAubergine | 3647 |
| 3 | Kevin114514 | 3603 |
| 4 | jiangly | 3583 |
| 5 | turmax | 3559 |
| 6 | tourist | 3541 |
| 7 | strapple | 3515 |
| 8 | ksun48 | 3461 |
| 9 | dXqwq | 3436 |
| 10 | Otomachi_Una | 3413 |
| # | User | Contrib. |
|---|---|---|
| 1 | Qingyu | 157 |
| 2 | adamant | 153 |
| 3 | Um_nik | 147 |
| 3 | Proof_by_QED | 147 |
| 5 | Dominater069 | 145 |
| 6 | errorgorn | 142 |
| 7 | cry | 139 |
| 8 | YuukiS | 135 |
| 9 | TheScrasse | 134 |
| 10 | chromate00 | 133 |
| Name |
|---|



These constraints are in a very gray area, it really depends on the time limit. So depending on the limit you may or may not be able to:
Factor each number: Sieve of Eratosthenes + 3000 * (primes below 10 ^ 5) = 3000 * 10000; Generate divisors of each number in O(divisor_count). Divisor_count is at most 2300. Keep a frequency table for the divisors and just select the biggest one that's over k.
Just a first thought. It's a fragile solution, but it may very well work. Again, the constraints are too fuzzy. Will look for something cleaner and smarter though :).
If I correctly understood your solution it wouldn't work because the gcd can be a composite number instead of a prime.
I take in account all divisors, composite or not. The factoring into primes part is only so you can generate the divisors of a number quickly, instead of trying each number up to 10 ^ 5.
Thank you, I understood.
ez
gg easy FTFY