Editorial for DMOPC '17 Contest 5 P3 - Mimi and Primes


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.

Author: Kirito

For the first subtask, it is possible to iterate through all factors of a number in O(Ai) time, and then check if they are prime in O(Ai) time. If said factor is prime, we can iterate through the array and see if every number in the array is a multiple in O(N) time.

Time Complexity: O(Nmax(Ai)2)

Bonus: The time complexity given above is a very loose upper bound. Can you establish a tighter bound?

For the second subtask, we can find the GCD of the array in O(Nlogmax(Ai)) by using the Euclidean algorithm. Bonus: This bound can be improved to O(N+logmax(Ai)). The proof is an exercise.

We can then prime factorize the GCD in O(G) time, where G is the GCD, and return the largest prime factor.

Time Complexity: O(N+max(Ai))


Comments

There are no comments at the moment.