早上发了一个非常基础的题目,尝试做了一遍,发现不成功。
https://bbs.eeworld.com.cn/thread-1283777-1-1.html
除了数据量大一点,其它都还比较easy,上午和朋友们讨论了一下,主要有两个方向改进:
关于f(n):
首先建立一个质数数组,对于给定n值,只取小于n的前k项,逆序比较,如果是其因数,则退出,快速获得最大质因数。
关于h(n):
我们知道h(x)是一个非单调递增序列,是在x∈[2,n]取最大的g(x),而g(x)是若干项的和,因此不需要对每个小于n的数字进行计算,当计算出x=n时的g(n),如果f(n+9)<f(n),则g(n+1)=g(n),否则计算h(n+1)与g(n)进行比较,取其大值作为h(n+1)的值。
|