【欧拉计划】27. Quadratic primes

(本题取 $n=1000$)

【思路】由于范围不大,因而可以直接 $\mathcal O(n^2)$ 枚举,然后套上质数的判断即可。由于待判断的数大小不确定,因而用质数判断函数来代替欧拉筛:

阅读更多

【欧拉计划】26. Reciprocal cycles

【思路】这题的关键就是如何得到循环节。试想,当我们把一个单位分数扩大 $10$ 的若干次幂之后,得到的数的整数部分会出现循环。

因此,我们可以重复地将一个初始值为 $1$ 的数对单位分数的分母取模,然后乘上 $10$。

每操作一次,就检查这个数是否已经出现过。如果出现过,就说明已经找到循环节;否则标记并继续操作:

阅读更多

【欧拉计划】23. Non-abundant sums

(本题取 $n=28123$)

【思路】$\mathcal O(n \sqrt n)$ 预处理因数个数(用 Problem 21 的思路可优化至 $\mathcal O(n)$),然后 $\mathcal O(n^2)$ 模拟。最终的时间复杂度都为 $\mathcal O(n^2)$:

阅读更多

【欧拉计划】22. Names scores

【思路】从文件读入所有名字,然后模拟。难点在于读入的方法。当然也可以另编写一个程序,将所有名字每几个就换一次行,然后把表存在最终程序里(详见 Problem 42):

阅读更多

【欧拉计划】21. Amicable numbers

(本题取 $n=10000$)

【思路】先 $\mathcal O(n)$ 预处理 $1 \sim 10000$ 因数个数,然后 $\mathcal O(n)$ 枚举,总体时间复杂度仍为 $\mathcal O(n)$:

阅读更多