数学题001-数位乘积

题目

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

解法

末位筛选

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

下界

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

求值-1

上界

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

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

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

计算

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

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

因此,唯一解为 4545.

求值-2

特殊性质

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

数学归纳法.

我们假设数字 xxkk 位:

  • k=1k=1p(x)=xp(x)=x.

  • k1k \neq 1 时,p(x)xp(x) \leq x 成立:

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

    注意到 m<10m \lt 10p(t)=mp(x)10p(x)10x10x+mtp(t)=mp(x) \leq 10p(x) \leq 10x \leq 10x+m \leq t.

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

根据性质得出上界

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

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

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