1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| 高斯整数的研究
我们都知道方程x2=-1在实数范围内无解。 但如果我们引入虚数i,这个方程将会有两个解x=i和x=-i。 进一步地,方程(x-3)2=-4有两个复数解:x=3+2i和x=3-2i。 x=3+2i和x=3-2i互称为共轭复数。 形如a+bi的数被称为复数。 概括地说,a+bi和a−bi互称为共轭复数。
高斯整数是形如a+bi且a和b均为整数的复数。 一般意义上的整数也是高斯整数(取b=0)。 为了把它们和b ≠ 0的高斯整数区分开来,称它们为“有理整数”。 如果一个高斯整数除有理整数n的结果仍然是高斯整数,则称它为该有理整数的约数。 例如,我们用1+2i除5,按如下方式简化\frac{5}{1+2i}:分子和分母同时乘以1+2i的共轭:1−2i。 结果是:\frac{5}{1+2i}=\frac{5}{1+2i}\frac{1-2i}{1-2i}=\frac{5(1-2i)}{1-(2i)^2}=\frac{5(1-2i)}{1-(-4)}=\frac{5(1-2i)}{5}=1-2i。所以1+2i是5的约数。 注意1+i不是5的约数,因为\frac{5}{1+i}=\frac{5}{2}-\frac{5}{2}i。同时注意如果高斯整数(a+bi)是有理整数n的约数,那么它的共轭复数(a−bi)也是n的约数。
事实上,5一共有六个实数部分是正数的约数:{1, 1 + 2i, 1 − 2i, 2 + i, 2 − i, 5}。 如下表格列出了前五个正有理整数的所有约数:
n 实数部分是正数的高斯整数约数 约数的和s(n) 1 1 1 2 1, 1+i, 1-i, 2 5 3 1, 3 4 4 1, 1+i, 1-i, 2, 2+2i, 2-2i,4 13 5 1, 1+2i, 1-2i, 2+i, 2-i, 5 12 对于实数部分为正数的约数,我们有:\sum_{n=1}^{5}s(n)=35。
对于1 ≤ n ≤ 10^5,∑ s(n)=17924657155。
对于1 ≤ n ≤ 10^8,求∑ s(n)。
我的思路: 在复数坐标系上,5高斯整数约数相当于一个半径平方为5的圆的所有整数交点,以及5的所有因数的高斯整数约数. 那么有一个nsqrt n的方法,即枚举n,然后开根号检验所有点,这些算自己的高斯约数,然后检查n的所有约数,如果有就加上他们的高斯约数. 请给我对应的c++代码实现,注意开long long.
|