Archive for the ‘Problem Solving’ Category

IMC 2017 – Day 2 – Problems

August 3, 2017 Leave a comment

Problem 6. Let {f: [0,\infty) \rightarrow \Bbb{R}} be a continuous function such that {\lim_{x \rightarrow \infty}f(x) = L} exists (finite or infinite).

Prove that

\displaystyle \lim_{n \rightarrow \infty} \int_0^1 f(nx) dx = L.

Problem 7. Let {p(x)} be a nonconstant polynomial with real coefficients. For every positive integer {n} let

\displaystyle q_n(x) = (x+1)^n p(x)+x^n p(x+1).

Prove that there are only finitely many numbers {n} such that all roots of {q_n(x)} are real.

Problem 8. Define the sequence {A_1,A_2,...} of matrices by the following recurrence

\displaystyle A_1 = \begin{pmatrix} 0& 1 \\ 1& 0 \end{pmatrix}, \ A_{n+1} = \begin{pmatrix} A_n & I_{2^n} \\ I_{2^n} & A_n \end{pmatrix} \ \ (n=1,2,...)

where {I_m} is the {m\times m} identity matrix.

Prove that {A_n} has {n+1} distinct integer eigenvalues {\lambda_0<\lambda_1<...<\lambda_n} with multiplicities {{n \choose 0},\ {n\choose 1},...,{n \choose n}}, respectively.

Problem 9. Define the sequence {f_1,f_2,... : [0,1) \rightarrow \Bbb{R}} of continuously differentiable functions by the following recurrence

\displaystyle f_1 = 1; f'_{n+1} = f_nf_{n+1} \text{ on } (0,1) \text{ and } f_{n+1}(0)=1.

Show that {\lim_{n\rightarrow \infty}f_n(x)} exists for every {x \in [0,1)} and determine the limit function.

Problem 10. Let {K} be an equilateral triangle in the plane. Prove that for every {p>0} there exists an {\varepsilon >0} with the following property: If {n} is a positive integer and {T_1,...,T_n} are non-overlapping triangles inside {K} such that each of them is homothetic to {K} with a negative ratio and

\displaystyle \sum_{\ell =1}^n \text{area}(T_\ell) > \text{area} (K)-\varepsilon,


\displaystyle \sum_{\ell =1}^n \text{perimeter} (T_\ell) > p.

Project Euler – Problem 264

July 28, 2017 Leave a comment

Today I managed to solve problem 264 from Project Euler. This is my highest rating problem until now: 85%. You can click the link for the full text of the problem. The main idea is to find all triangles ABC with vertices having integer coordinates such that

  • the circumcenter O of each of the triangles is the origin
  • the orthocenter H (the intersection of the heights) is the point of coordinates (0,5)
  • the perimeter is lower than a certain bound

I will not give detailed advice or codes. You can already find a program online for this problem (I won’t tell you where) and it can serve to verify the final code, before going for the final result. Anyway, following the hints below may help you get to a solution.

The initial idea has to do with a geometric relation linking the points A, B, C, O and H. Anyone who did some problems with vectors and triangles should have come across the needed relation at some time. If not, just search for important lines in triangles, especially the line passing through O and H (and another important point).

Once you find this vectorial relation, it is possible to translate it in coordinates. The fact that points A, B, C are on a circle centered in O shows that their coordinates satisfy an equation of the form x^2+y^2=n, where n is a positive integer, not necessarily a square… It is possible to enumerate all solutions to the following equation for fixed n, simply by looping over x and y. This helps you find all lattice points on the circle of radius \sqrt{n}.

Once these lattice points are found one needs to check the orthocenter condition. The relations are pretty simple and in the end we have two conditions to check for the sum of the x and y coordinates. The testing procedure is a triple loop. We initially have a list of points on a circle, from the previous step. We loop over them such that we dont count triangles twice: i from 1 to m, j from i+1 to m, k from j+1 to m, etc. Once a suitable solution is found, we compute the perimeter using the classical distance formula between two points given in coordinates. Once the perimeter is computed we add it to the total.

Since the triple loop has cubic complexity, one could turn it in a double loop. Loop over pairs and construct the third point using the orthocenter condition. Then just check if the point is also on the circle. I didn’t manage to make this double loop without overcounting things, so I use it as a test: use double loops to check every family of points on a given circle. If you find something then use a triple loop to count it properly. It turns out that cases where the triple loop is needed are quite rare.

So now you have the ingredients to check if on a circle of given radius there are triangles with the desired properties. Now we just iterate over the square of the radius. The problem is to find the proper upper bound for this radius in order to get all the triangles with perimeter below the bound. It turns out that a simple observation can get you close to a near optimal bound. Since in the end the radii get really large and the size of the triangles gets really large, the segment OH becomes small, being of fixed length 5. When OH is very small, the triangle is almost equilateral. Just use the upper bound for the radius for an equilateral triangle of perimeter equal to the upper bound of 100000 given in the problem.

Using these ideas you can build a bruteforce algorithm. Plotting the values of the radii which give valid triangles will help you find that you only need to loop over a small part of the radii values. Factoring these values will help you reduce even more the search space. I managed to  solve the problem in about 5 hours in Pari GP. This means things could be improved. However, having an algorithm which can give the result in “reasonable” time is fine by me.

I hope this will help you get towards the result.

Balkan Mathematical Olympiad 2017 – Problems

May 10, 2017 Leave a comment

Problem 1. Find all ordered pairs of positive integers { (x, y)} such that:

\displaystyle x^3+y^3=x^2+42xy+y^2.

Problem 2. Consider an acute-angled triangle {ABC} with {AB<AC} and let {\omega} be its circumscribed circle. Let {t_B} and {t_C} be the tangents to the circle {\omega} at points {B} and {C}, respectively, and let {L} be their intersection. The straight line passing through the point {B} and parallel to {AC} intersects {t_C} in point {D}. The straight line passing through the point {C} and parallel to {AB} intersects {t_B} in point {E}. The circumcircle of the triangle {BDC} intersects {AC} in {T}, where {T} is located between {A} and {C}. The circumcircle of the triangle {BEC} intersects the line {AB} (or its extension) in {S}, where {B} is located between {S} and {A}.

Prove that {ST}, {AL}, and {BC} are concurrent.

Problem 3. Let {\mathbb{N}} denote the set of positive integers. Find all functions {f:\mathbb{N}\longrightarrow\mathbb{N}} such that

\displaystyle n+f(m)\mid f(n)+nf(m)

for all {m,n\in \mathbb{N}}

Problem 4. On a circular table sit {\displaystyle {n> 2}} students. First, each student has just one candy. At each step, each student chooses one of the following actions:

  • (A) Gives a candy to the student sitting on his left or to the student sitting on his right.
  • (B) Separates all its candies in two, possibly empty, sets and gives one set to the student sitting on his left and the other to the student sitting on his right.

At each step, students perform the actions they have chosen at the same time. A distribution of candy is called legitimate if it can occur after a finite number of steps. Find the number of legitimate distributions.

(Two distributions are different if there is a student who has a different number of candy in each of these distributions.)

Source: AoPS

Missing digit – short puzzle

April 15, 2017 Leave a comment

The number 2^{29} has 9 digits, all different; which digit is missing?

Mathematical Mind-Benders, Peter Winkler

Read more…

Project Euler Problem 285

March 25, 2017 Leave a comment

Another quite nice problem from Project Euler is number 285. The result of the problem depends on the computation of a certain probability, which in turn is related to the computation of a certain area. Below is an illustration of the computation for k equal to 10.


To save you some time, here’s a picture of the case k=1 which I ignored and spent quite a lot of time debugging… Plus, it only affects the last three digits or so after the decimal point…


Here’s a Matlab code which can construct the pictures above and can compute the result for low cases. To solve the problem, you should compute explicitly all these areas.

function problem285(k)

N = 100000;

a = rand(1,N);
b = rand(1,N);

ind = find(abs(sqrt((k*a+1).^2+(k*b+1).^2)-k)<0.5);

axis equal

M = k;
pl = 1;

for k=1:M
if mod(k,100)==0
r1 = (k+0.5)/k;
r2 = (k-0.5)/k;

f1 = @(x) (x<=(-1/k+r1)).*(x>=(-1/k-r1)).*(sqrt(r1^2-(x+1/k).^2)-1/k).*(x>=0).*(x<=1); f1 = @(x) f1(x).*(f1(x)>=0);
f2 = @(x) (x<=(-1/k+r2)).*(x>=(-1/k-r2)).*(sqrt(r2^2-(x+1/k).^2)-1/k).*(x>=0).*(x<=1); f2 = @(x) f2(x).*(f2(x)>=0);

if k == pl
thetas = linspace(0,pi/2,200);
hold on
plot([0 1 1 0 0],[0 0 1 1 0],'k','LineWidth',3);
hold off
axis off

A(k) = integral(@(x) f1(x)-f2(x),0,1);


xs = xlim;
ys = ylim;

w = 0.01;
axis([xs(1)-w xs(2)+w ys(1)-w ys(2)+w]);


Some of the easy Putnam 2016 Problems

December 11, 2016 Leave a comment

Here are a few of the problems of the Putnam 2016 contest. I choose to only list problems which I managed to solve. Most of them are pretty straightforward, so maybe the solutions posted here may be very similar to the official ones. You can find a complete list of the problems on other sites, for example here.

A1. Find the smallest integer {j} such that for every polynomial {p} with integer coefficients and every integer {k}, the number

\displaystyle p^{(j)}(k),

that is the {j}-th derivative of {p} evaluated at {k}, is divisible by {2016}.

Hints. Successive derivatives give rise to terms containing products of consecutive numbers. The product of {j} consecutive numbers is divisible by {j!}. Find the smallest number such that {2016 | j!}. Prove that {j-1} does not work by choosing {p = x^{j-1}}. Prove that {j} works by working only on monomials…

Read more…

IMC 2016 – Day 2 – Problem 8

July 28, 2016 2 comments

Problem 8. Let {n} be a positive integer and denote by {\Bbb{Z}_n} the ring of integers modulo {n}. Suppose that there exists a function {f:\Bbb{Z}_n \rightarrow \Bbb{Z}_n} satisfying the following three properties:

  • (i) {f(x) \neq x},
  • (ii) {x = f(f(x))},
  • (iii) {f(f(f(x+1)+1)+1) = x} for all {x \in \Bbb{Z}_n}.

Prove that {n \equiv 2} modulo {4}.

Read more…

%d bloggers like this: