PE-429-and-HNU-A

近期做的两道题。

Problem

ProjetEuler-429

定义 dd 是 nn 的单位因子,当且仅当 gcd(d,nd)=1gcd(d, \frac{n}{d}) = 1 。

令 f(n)f(n) 表示 nn 的所有单位因子的平方和。例如 f(24)=12+32+82+242=650f(24) = 1^2 + 3^2 + 8^2 + 24^2 = 650

求 f(108!)f(10^8 !)

湖大 ACM 区域赛 A

求 ⌈(a+b)n⌉mod  m\lceil (a + \sqrt{b})^n \rceil \mod{m} 。

b,n≤230,a,m≤215b, n \leq 2^{30}, a, m \leq 2^{15}

保证 (a−1)2<b<a2(a - 1)^2 < b < a^2 。

Solution

ProjetEuler-429

显然 ff 积性。

显然 f(px)=1+p2xf(p^x) = 1 + p^{2x} 。

然后线性筛法筛过去没了。

湖大 ACM 区域赛 A

注意到:

(a+b)n+(a−b)n=∑x=0n(nx)an−x(bx+(−b)x).(a + \sqrt{b})^n + (a - \sqrt{b})^n = \sum_{x = 0}^n \binom{n}{x} a^{n - x} \left(\sqrt{b^x} + (-\sqrt{b})^x \right).

当 xx 为奇数时 (b)x+(−b)x=0(\sqrt{b})^x + (-\sqrt{b})^x = 0 ,当 xx 为偶数时 (b)x+(−b)x(\sqrt{b})^x + (-\sqrt{b})^x 为整数,所以 (a+b)n+(a−b)n(a + \sqrt{b})^n + (a - \sqrt{b})^n 为整数,又由于 0<a−b<10 < a - \sqrt{b} < 1 所以 ⌈(a+b)n⌉=(a+b)n+(a−b)n\lceil (a + \sqrt{b})^n \rceil = (a + \sqrt{b})^n + (a - \sqrt{b})^n 。

现在考虑求 (a+b)n+(a−b)n(a + \sqrt{b})^n + (a - \sqrt{b})^n 。我们可以把它看成是一个二阶线性齐次递推式的通项公式,只要还原出递推式出来,就可以用矩阵乘法了。

考虑 x1=2a,x2=2a2+2b,xn=pxn−1+qxn−2x_1 = 2a, x_2 = 2a^2 + 2b, x_n = p x_{n -1} + q x_{n - 2} 。特征根方程是 x2−px−q=0x_2 - px - q = 0 。我们知道两个根分别是 a+ba + \sqrt{b} 和 a−ba - \sqrt{b} ,韦达可得 p=2a,q=b−a2p = 2a, q = b - a^2 ,所以 xn=2axn−1+(b−a2)xn−2x_n = 2a x_{n - 1} + (b - a^2) x_{n - 2}。

如果考虑直接求  mod m\bmod{m} 的循环节长度然后暴力不知道怎么样。