Maths WorkshopMaths problems with full solutions
Exercise 1983Calculus › Single-variable calculus › Continuity › Functional equationsOlympiadAdded 5 Nov 2026

IMO 2010: f(⌊x⌋y) = f(x)⌊f(y)⌋

#IMO 2010#floor function#functional equation#case analysis

Statement

Find all functions f:R→Rf:\mathbb{R}\to\mathbb{R} such that f(⌊x⌋y)=f(x)⌊f(y)⌋f(\lfloor x\rfloor y)=f(x)\lfloor f(y)\rfloor for all real x,yx,y.

Hint

Put x=0x=0 to find that either f(0)≠0f(0)\ne0, which forces ⌊f(y)⌋=1\lfloor f(y)\rfloor=1 for all yy, or f(0)=0f(0)=0. In the second case, prove that ff vanishes on (0,1)(0,1) first.

Show solutionHide solution

Solution

Case 1: f(0)≠0f(0)\ne0. Setting x=0x=0: f(0)=f(0)⌊f(y)⌋f(0)=f(0)\lfloor f(y)\rfloor, so ⌊f(y)⌋=1\lfloor f(y)\rfloor=1 for every yy. The equation becomes f(⌊x⌋y)=f(x)f(\lfloor x\rfloor y)=f(x) for all x,yx,y; with y=0y=0 we get f(0)=f(x)f(0)=f(x), so ff is a constant cc with ⌊c⌋=1\lfloor c\rfloor=1, i.e. c∈[1,2)c\in[1,2). These constants satisfy the equation: both sides equal cc.

Case 2: f(0)=0f(0)=0.

*Step 1: f=0f=0 on (0,1)(0,1).* For 0<x<10<x<1, ⌊x⌋=0\lfloor x\rfloor=0 and the equation reads 0=f(x)⌊f(y)⌋0=f(x)\lfloor f(y)\rfloor for all yy. If f(x)≠0f(x)\ne0 for some x∈(0,1)x\in(0,1), then ⌊f(y)⌋=0\lfloor f(y)\rfloor=0 for all yy. Now put x=1x=1: f(y)=f(1)⌊f(y)⌋=0f(y)=f(1)\lfloor f(y)\rfloor=0 for all yy, contradicting f(x)≠0f(x)\ne0. Hence f=0f=0 on (0,1)(0,1).

*Step 2: f=0f=0 on (0,∞)(0,\infty).* Take z>0z>0 and an integer n≥1n\ge1 with z/n<1z/n<1. Putting x=nx=n and y=z/ny=z/n: f(z)=f(n)⌊f(z/n)⌋=f(n)⌊0⌋=0f(z)=f(n)\lfloor f(z/n)\rfloor=f(n)\lfloor0\rfloor=0.

*Step 3: f=0f=0 on (−∞,0)(-\infty,0).* Put x=−1x=-1: f(−y)=f(−1)⌊f(y)⌋f(-y)=f(-1)\lfloor f(y)\rfloor. For y∈(0,1)y\in(0,1), f(y)=0f(y)=0 so f(−y)=0f(-y)=0: ff vanishes on (−1,0)(-1,0). For z<0z<0, take an integer m≥1m\ge1 with ∣z∣/m<1|z|/m<1, and put x=−mx=-m and y=z/(−m)∈(0,1)y=z/(-m)\in(0,1). Then ⌊x⌋y=z\lfloor x\rfloor y=z and f(z)=f(−m)⌊f(y)⌋=f(−m)⌊0⌋=0f(z)=f(-m)\lfloor f(y)\rfloor=f(-m)\lfloor0\rfloor=0.

So f≡0f\equiv0.

Answer. f≡0f\equiv0, or f≡cf\equiv c for a constant c∈[1,2)c\in[1,2).

Lesson. Case-split on the "degenerate" value (f(0)=0f(0)=0 or not) first, then propagate zeros from a small interval outward using the scaling built into the equation.