Solving the IMO 2025 problems

July 19, 2025 · 17 min · 3514 words · nor

So I've been solving IMO problems almost every year, ever since I was a math Olympiad contestant, either posting them to AoPS or just keeping the solutions to myself/discussing with other math Olympiad people.

Usually, I used to solve the problems in a single sitting, but given the fact that I missed a couple of years at some point, and that I had a bit of time this time, I decided to do a proper IMO mock this time (spoiler: P4 left a bad enough taste that I didn't want to really put in effort into P6).

Also, shortly after, it turned out that both OpenAI's and Google's internal models solved the same number of problems as I did (modulo some progress on P6), so congratulations to them for the milestone! I was procrastinating on writing this blog, but this milestone partially motivated me to write up my solutions too.

Here are some proof sketches (it's not hard to fill in the details if you're familiar with math Olympiads) and the thought process behind each problem, with some potentially colorful commentary on my perception of the problems.

Please take the comments with a grain of salt - I used to enjoy IMO problems much more as a kid or maybe even as a university student. The tone might make you think that these problems are not good - I would like to point out that this is not the case at all. IMO problems are chosen with multiple objectives in mind, one of them being quality, and not to just have the hardest problems. It's probably telling that I've moved on to other types of problems (though I do enjoy solving IMO-like problems too!).

Problem 1

A line in the plane is called 𝑠𝑢𝑛𝑛𝑦\textit{sunny} if it is not parallel to any of the xx–axis, the yy–axis, or the line x+y=0x + y = 0.

Let n3n \ge 3 be a given integer. Determine all nonnegative integers kk such that there exist nn distinct lines in the plane satisfying both of the following:

  • for all positive integers aa and bb with a+bn+1a + b \le n + 1, the point (a,b)(a, b) lies on at least one of the lines; and
  • exactly kk of the nn lines are sunny.

Solution sketch

The first piece of intuition comes from the fact that you have O(n2)O(n^2) points but only O(n)O(n) lines. So around O(n)O(n) average incidence. This is very suspicious, because as your "slope" becomes more irregular, the number of lattice points it covers drops a lot. So the answer should be relatively small kk only.

So you first do a brute-force check for some smaller nn (I did it for n=3n = 3), and figure out that k=0,1,3k = 0, 1, 3 work for n=3n = 3. Then you try to look at some larger nn, run out of patience at the brute-force, and realize that to cover the 3n33n - 3 boundary points with nn lines for n>3n > 3, you need at least 33 of these points on the same line. This promptly lets you remove one of the boundaries and induct down.

So the answer is 0,1,30, 1, 3, with the construction for each being lifted from n=3n = 3 for bigger nn.

Comments

Slightly boring, felt slightly harder than a usual P1 (unless it was cognitive decline at play). Not a bad problem at all, especially for P1.

Problem 2

Let Ω\Omega and Γ\Gamma be circles with centres MM and NN, respectively, such that the radius of Ω\Omega is less than the radius of Γ\Gamma. Suppose Ω\Omega and Γ\Gamma intersect at two distinct points AA and BB. Line MNMN intersects Ω\Omega at CC and Γ\Gamma at DD, so that C,M,N,DC, M, N, D lie on MNMN in that order. Let PP be the circumcentre of triangle ACDACD. Line APAP meets Ω\Omega again at EAE\neq A and meets Γ\Gamma again at FAF\neq A. Let HH be the orthocentre of triangle PMNPMN.

Prove that the line through HH parallel to APAP is tangent to the circumcircle of triangle BEFBEF.

Solution sketch

Fairly mechanical and straightforward (so I will skim over trivial details) - constructing the diagram shows that PP is the AA-excenter of AMNAMN. Using the circles, angle chasing gives that EBFEBF is inversely similar to MANMAN so it suffices to show that dist(H,EFAI)/dist(MA,BC)=BEAM\mathrm{dist}(H, EF \equiv AI) / \mathrm{dist}(M_A, BC) = \frac{BE}{AM} where MAM_A is the midpoint of the arc MNMN (not containing AA) in the circumcircle of MANMAN and II is the incenter of MANMAN. Now note that HH is the reflection of II in the midpoint of MNMN, so the ratio on the left is 2sinMN22 \sin \frac{M - N}{2} which is the same as the ratio on the right (BEBE is an arc in the circle centered at MM).

Comments

This problem was authored by Tran Quang Hung, and his problems are pretty fun, so I know what this problem could have been. Geometry has been my strongest subject by far, so maybe I'm slightly desensitized even though this problem felt better than other recent geometry problems on the IMO. Not to mention my general dislike of IMO geometry problems - I would prefer if they had more hard problems that people can't just bash and that at least feel aesthetically pleasant. Higher order curves (even just conics) are super rich, I hope they show up in IMO geometry at some point (I've seen some, in the 2010 IMO Shortlist for example, but it's somewhat sad that the actual IMO geometry problems feel like filler for contests, as a legacy subject). I do get the point behind not trying to shove more theory down contestant's throats, though.

Problem 3

Let \mathbb{N} denote the set of positive integers. A function f:f\colon\mathbb{N}\to\mathbb{N} is said to be bonza if

f(a)dividesbaf(b)f(a) f(a)~~\text{divides}~~b^a-f(b)^{f(a)}

for all positive integers aa and bb.

Determine the smallest real constant cc such that f(n)cnf(n)\leqslant cn for all bonza functions ff and all positive integers nn.

Solution sketch

Let P(a,b)P(a, b) denote the statement of the problem: f(a)|baf(b)f(a)f(a) | b^a - f(b)^{f(a)}. We start off by noting that f(x)xf(x) \equiv x is a trivial solution. So we will assume that there is at least some nn such that f(n)nf(n) \ne n.

First we do some standard substitutions, as with all FEs - P(a,a)P(a, a) gives that f(a)|aaf(a) | a^a, so when aa is a prime pp, we get f(p)=pkpf(p) = p^{k_p} for some non-negative integer kpk_p specific to pp. P(p,n)P(p, n) gives us f(p)|npf(n)pkpf(p) | n^p - f(n)^{p^{k_p}}, so if kp>1k_p > 1, we get p|f(p)|npf(n)pkpp | f(p) | n^p - f(n)^{p^{k_p}}. The right side is congruent to nf(n)n - f(n) modulo pp, so pp divides nf(n)n - f(n). This means that other than finitely many pp, in particular, for all primes p>p0p > p_0 for some fixed p0p_0, f(p)=1f(p) = 1.

P(a,p)P(a, p) for such primes pp gives us pa1(modf(a))p^a \equiv 1 \pmod {f(a)}. Since this happens for all large enough pp, this is a very strong statement. Consider the prime factors of f(a)f(a) and their primitive roots and let's try to apply Dirichlet to construct a large pp that is a primitive root of each prime power factor of f(a)f(a). Let's also assume aa is odd, so f(a)|aaf(a) | a^a is odd, and we don't run into shenanigans with even factors of f(a)f(a). This lets us apply Dirichlet, and thus piαi1(pi1)|ap_i^{\alpha_i - 1} (p_i - 1) | a for each prime power factor piαip_i^{\alpha_i} of f(a)f(a). The left side is even and the right side is odd, which is a contradiction. So there must be no prime factors of f(a)f(a), i.e., f(a)=1f(a) = 1 for odd aa. In particular, we can now reduce our bound for p0p_0 to 11.

Another fact that we can get from this is that if an odd prime pp divides f(a)f(a), using P(a,p)P(a, p) gives us p|f(a)|pa1p | f(a) | p^a - 1, which is a contradiction. So f(a)f(a) is a power of 22. Now we apply P(2k,3)P(2k, 3) and the lifting the exponent lemma to realize that ν2(f(n))ν2(n)+2\nu_2(f(n)) \le \nu_2(n) + 2 for even nn, and when we combine it with the previous observation, we get f(a)2ν2(n)+24af(a) \le 2^{\nu_2(n) + 2} \le 4a.

So we get an upper bound on cc. Now for the lower bound, we need to exhibit an example. Finding this was slightly tricky because the naive construction where you turn the inequality signs into equalities doesn't work, but you can set f(2)=4f(2) = 4 and everything falls into place.

Comments

This was more fun to work on than the previous problems, but it felt absurdly easy for a number theory/algebra P3, and could have been more suitable for a harder P5. I remember thinking while solving this problem whether kids don't do number theory FEs these days. To be fair, this was the problem that took me the most amount of time out of all problems on this IMO that I full-solved (around 40 mins), though that is still pretty low considering how out of practice I've been.

Problem 4

A proper divisor of a positive integer NN is a positive divisor of NN other than NN itself.

The infinite sequence a1,a2,a_1, a_2, \cdots consists of positive integers, each of which has at least three proper divisors. For each n1n\geq 1, the integer an+1a_{n+1} is the sum of the three largest proper divisors of ana_n.

Determine all possible values of a1a_1.

Solution sketch

The problem has a bunch of annoying details and cases to miss, so I won't bother writing out anything other than the answer and the proof sketch: the answer is all n=612kmn = 6 \cdot 12^k \cdot m where gcd(m,10)=1\gcd(m, 10) = 1.

The idea is to note that the largest three proper divisors are NN divided by xx where the xx-s are non-NN divisors of NN. Now you basically try and figure out what these xx-s are, and it leads you to a wild goose chase. Once you figure out some details (like elements of the sequence must be divisible by both 22 and 33 - doable via simple modular arithmetic arguments), it turns out that in one of the easier cases, 1212 gets replaced by 1313 as a factor, so you factor out all 1212-s from the number, and then make cases on what the rest of it is, at which point you solve the problem.

Comments

Firstly, you should consider the fact that I had to edit this subsection to sound more balanced. I feel for the poor graders who have to grade through reams of casework that I'm expecting IMO contestants to write (they have 4.5 hours to write solutions each day, and some of them solve the same problem for all of that time). In the amount of casework required, it reminded me of IMO 2015 P2 (go figure), and also left a bad aftertaste that persisted through solving the rest of the problems on this day. It is a completely personal experience, and I can't speak for others. As much as I did not enjoy the problem (which is just my personal preference, to be completely clear), I believe this is a somewhat reasonable problem for letting people get some partials, which is good for more defined medal cutoffs (whether that is a good thing or not is a completely different question altogether).

Problem 5

Alice and Bazza are playing the inekoalaty game, a two‑player game whose rules depend on a positive real number λ\lambda which is known to both players. On the nnth turn of the game (starting with n=1n=1) the following happens:

  • If nn is odd, Alice chooses a nonnegative real number xnx_n such that x1+x2++xnλn. x_1 + x_2 + \cdots + x_n \le \lambda n.
  • If nn is even, Bazza chooses a nonnegative real number xnx_n such that x12+x22++xn2n. x_1^2 + x_2^2 + \cdots + x_n^2 \le n.

If a player cannot choose a suitable xnx_n, the game ends and the other player wins. If the game goes on forever, neither player wins. All chosen numbers are known to both players.

Determine all values of λ\lambda for which Alice has a winning strategy and all those for which Bazza has a winning strategy.

Solution sketch

Let's rename Bazza to Bob for a bit.

Immediately, we note that there are competing norms here - 1\ell_1 and 2\ell_2. So we first look at the induced unit balls of these norms (contours for short). Guessing the strategy greedily, for Alice to have the "coordinates" of the sequence comfortably within her contours but outside Bob's, she would have to have all "coordinates" be as sparse as possible, while for Bob to have the sequence comfortable in his contours but outside Alice's, he needs to have them be as close to each other as possible.

Let's try to estimate the λ\lambda boundary using such these strategies (Alice picks 00 while Bob picks something else) - if Alice picks xx, Bob picks 2x2\sqrt{2 - x^2} to keep his bounds tight. Then x+2x22x + \sqrt{2 - x^2} \ge \sqrt{2}, so we can guess λ=1/2\lambda = 1/\sqrt{2}.

The problem now falls apart, and it's just simple case-work - when λ>12\lambda > \frac{1}{\sqrt{2}}, Alice keeps picking 00 (this can be verified to be safe for her at every move) and once the gap between the bound and the sum becomes large (it is positive and at least linear in nn), picks the number that makes the bounds for her tight, adding a term that's quadratic in nn to Bob's bound, which is losing for Bob if Alice has waited for a large enough nn. When λ<12\lambda < \frac{1}{\sqrt{2}}, Bob wins by choosing 2x2\sqrt{2 - x^2} whenever Alice plays xx (xx is guaranteed to be <2< \sqrt{2} by bounding arguments and induction). At some point when nn becomes large enough, Bob wins.

Comments

I might be a bit biased because I've co-authored a problem with one of the authors of this problem before, but I think this was the breath of fresh air that made me even want to think about trying to solve P6. Again, it's a bit too easy for a P5, I would have liked it to be a substitute for P4.

Problem 6

Consider a 2025×20252025 \times 2025 grid of unit squares. Matilda wishes to place on the grid some rectangular tiles, possibly of different sizes, such that each side of every tile lies on a grid line and every unit square is covered by at most one tile.

Determine the minimum number of tiles Matilda needs to place so that each row and each column of the grid has exactly one unit square that is not covered by any tile.

Partial solution sketch

I came up with a construction that seems to be somewhat close to optimal (and it reminds me of IMO 2014 P2), with n2+2n3n^2 + 2n - 3 tiles for an n2×n2n^2 \times n^2 grid (2025 is a perfect square). I tried some permutation stuff with the uncovered squares (treat the row ids and column ids of each uncovered square as two sequences that are permutations of each other, and apply something like Erdos Szekeres), but probably didn't get far enough to solve the problem after trying to prove optimality for 10 minutes after coming up with the construction. I guess it would be worth a point or two in the final rubric, but since I'm not sure, I decided to conservatively not give myself any points for this.

Comments

I'm still not completely sure if my construction is optimal. The problem reminded me of two problems - IMO 2014 P2, and one of Anton Trygub's problems that I tested for an ICPC (pre-?)regional that he authored. This is probably one of the more fun problems in this contest, and also very competitive programming flavored.

Some statistics

My perception of the problem difficulties (time taken to full solve, other than P6): P2 = P5 < P1 < P4 < P3 < P6.

My perception of problem qualities: P4 < P1 = P2 < P3 < P5 < P6.

My (unofficial) score (not to be taken too seriously): 35+ϵ35 + \epsilon where I'm expecting ϵ\epsilon to be in [0,2][0, 2].

Time taken per problem: P2 = ~10 mins, P5 = ~15 mins, P1 = ~20 mins, P4 = ~30 mins, P3 = ~40 mins, P6 (incomplete) = ~30 mins.

Final remarks

As a problem set, the problems felt relatively easy-to-middle-heavy, lots of mid-difficulty problems, no very hard problems. It also felt easier than previous years. The quality was fine with the exception of P4.

I'm guessing that (with high probability) the subject distribution was CGNNAC - not the most favourable one for me in terms of scoring, but I would take it over something like CCCCCC (though I would probably enjoy solving the problems more with an all-C paper - the IMO combinatorics shortlist is the dumping ground for any non-standard problems).

While solving these problems, I noticed how different my thought process and mathematical tastes have become over time - immediately jumping on to norms in P5 while I would have previously tried to apply more "local" methods like inequalities, becoming even more averse to case-analysis than I used to be (in university too, perhaps), trying to find structure in number theory problems that seemed to be there back then but which now feel like slightly more of an ad hoc mess of independent ideas with no coherent background (not that it's a bad thing). I also used to enjoy geometry problems a lot, but I guess prolonged exposure to non-Euclidean geometry and advanced triangle geometry made me a bit desensitized to Olympiad geometry.

The news that OpenAI and Google also achieved gold medal performance on the IMO seems to be quite a big landmark, though the backdrop is nowhere near as impressive as the Go moment. It is still something most people didn't think was possible, so it should be something most people should update on.

Cite this post
@online{imo-2025-2025,
  author    = {nor},
  title     = {Solving the IMO 2025 problems},
  year      = {2025},
  month     = {07},
  day       = {19},
  url       = {https://nor-blog.pages.dev/posts/2025-07-19-imo-2025},
}