PE-429-and-HNU-A

近期做的两道题。

Problem

ProjetEuler-429

定义 ddnn 的单位因子,当且仅当 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)nmodm\lceil (a + \sqrt{b})^n \rceil \mod{m}

b,n230,a,m215b, n \leq 2^{30}, a, m \leq 2^{15}

保证 (a1)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+(ab)n=x=0n(nx)anx(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+(ab)n(a + \sqrt{b})^n + (a - \sqrt{b})^n 为整数,又由于 0<ab<10 < a - \sqrt{b} < 1 所以 (a+b)n=(a+b)n+(ab)n\lceil (a + \sqrt{b})^n \rceil = (a + \sqrt{b})^n + (a - \sqrt{b})^n

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

考虑 x1=2a,x2=2a2+2b,xn=pxn1+qxn2x_1 = 2a, x_2 = 2a^2 + 2b, x_n = p x_{n -1} + q x_{n - 2} 。特征根方程是 x2pxq=0x_2 - px - q = 0 。我们知道两个根分别是 a+ba + \sqrt{b}aba - \sqrt{b} ,韦达可得 p=2a,q=ba2p = 2a, q = b - a^2 ,所以 xn=2axn1+(ba2)xn2x_n = 2a x_{n - 1} + (b - a^2) x_{n - 2}

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