Editorial for TLE '17 Contest 5 P3 - Willson and Factorization
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
For the first of the points, we note that when
is prime, then all
from
to
satisfy
, so by Bézout's Lemma, there exist
such that
, or equivalently,
. That is, every non-zero element in
is a unit.
We can either simply print all numbers from to
as a unit, but code that has a correct unit check, does not check if a unit is irreducible or prime, and does not time out will also pass.
Time Complexity: or
(unit checking only)
For the next of the points, we brute force check if elements are units or not in
time by checking every possible pair of elements. Then, we brute force check if elements are irreducible or not in
by checking every possible triple of non-units.
To find prime elements, we try every possible combination of to check if
is prime.
Time Complexity:
For the next , we note that we do not need to try every possible combination of
and instead, we just need to go over every possible
, using booleans to mark when
.
Time Complexity:
For full points, we precompute whether or not for any pair , there exists
such that
. This can be done in
time. In fact, we say that
divides
when this is true.
Then, we only need to go over every possible , using the precomputed divisibility array.
Time Complexity:
Comments