数学题001-数位乘积

题目

(2005·罗马尼亚) 定义 $\forall x \in N^*,p(x)$ 为 $x$ 各位数字的乘积(例如: $p(23)=6,p(110)=0,p(124)=8$). 求出所有的 $n$,使得 $10p(n)=n^2+4n-2005$.

解法

末位筛选

首先,由于 $10p(n)$ 是 $10$ 的倍数,所以 $n^2+4n$ 是以 $5$ 结尾的整数. 对于末位为 $1 \sim 9$的数字,不难发现只有 $1,5$ 满足 $n^2+4n$ 以 $5$ 结尾.

下界

不难发现,$10p(n) \geq 0$,所以 $n^2+4n-2005 \geq 0,n \geq 43$.

求值-1

上界

考虑 $n \in [100,999]$ 的情况:

  • 左端 $\in [0,729]$
  • 右端 $\geq 8395$

当 $n$ 更大时,左右差距也更大,所以 $n \in [43,99]$.

计算

分别设 $n_1=10k+1,n_2=10k+5$ (不考虑 $k$ 的范围):

  • 对于 $n_1$,$p(n_1)=1 \cdot k=k,10k=(10k+1)^2+4(10k+1)-2025$,无解.
  • 对于 $n_2$,同理求出 $10(5k)=(10k+5)^2+4(10k+5)-2025$,解得 $k=4$.

因此,唯一解为 $45$.

求值-2

特殊性质

在我做出这题的时候,给我题的同学偷偷告诉我:$\forall x \in N^*,p(x) \leq x$.

数学归纳法.

我们假设数字 $x$ 有 $k$ 位:

  • $k=1$,$p(x)=x$.
  • 若$k \neq 1$ 时,$p(x) \leq x$ 成立:

令 $t=10x+m(m \in [0,9])$,也就是 $t$ 是在 $x$ 的末位追加一个 $m$,

注意到 $m \lt 10$,$p(t)=mp(x) \leq 10p(x) \leq 10x \leq 10x+m \leq t$.

所以 $\forall x \in N^*,p(x) \leq x$.

根据性质得出上界

根据刚才的性质,$n^2+4n-2005 \leq 10n,n \leq 47$.

既然 $n \in [43,47]$,说明只有 $n=45$ 可能满足条件.

代入验证,当 $n=45$ 时两端相等,所以 $n=45$ 是唯一解.