一点一点前进...

0%

欧拉项目 | 700题 | Eulercoin

700题链接

先瞎扯一句,欧拉项目网站的第700题(整百哦)有纪念欧拉意味,看得出来,出题人很有情怀。

欧拉(Leonhard Euler)出生于1707年4月15日。
考虑序列$1504170715041707n \mod 4503599627370517$。
在这个序列的元素,如果小于前一个Eulercoin,那么它就是Eulercoin。
显然第一个Eulercoin是1504170715041707,也是序列的第一个数;该序列的第二个数3008341430083414比上一个Eulercoin大,它不是Eulercoin,第三项8912517754604比第一项小,所以是新的Eulercoin。
求所有Eulercoin之和。

要计算所有的Eulercoin之和,那么该序列最后一个值是0就算结束,其实我们得到1的时候也可以结束了,因为下一个一定是0,对和没有影响。
如果知道连续两个Eulercoin,如何计算下一个呢?假设这三个Eulercoin分别是$s,f,n$,用$Mod$表示4503599627370517,$E$来表示1504170715041707,那么他们满足下面三个等式
$$s_1E=s_2Mod+s$$
$$f_1E=f_2Mod+f$$
$$n_1E=n_2Mod+n$$
第三个等式可以由第一个等式和第二个等式线性组合得到。
$f<s$,同时$s_1,f_1$必须是正整数,那么$s_1<f_1$,为了保证$0<n<f$,那么可能的线性组合是
$$mf-s=n$$
所以
$$n=f-s\mod f$$