ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LGP2291口胡

2022-04-01 09:03:32  阅读:132  来源: 互联网

标签:LGP2291 log 质数 sqrt 素数 区间 复杂度


尝试用一个极其奇怪的算法草过去

首先知道答案是 \(p^q\) 的形式,我们枚举这个 \(q\)。当 \(q=2\) 时一定能在 ll 范围内搜出解,所以可以知道 \(q\leq 64\),而且当 \(q\) 过大时可选的值也很少。

考虑 \(q=2\),是最麻烦的一部分。考虑在 \(\sqrt{n}\) 附近确定一段区间,这段区间中有恰好 \(k\) 个质数。

我们知道素数密度是 \(O(\ln n)\),所以这个区间的长度一定是 \(O(k\ln n)\) 级别的。长度可以保守估计按照 5e6 来算。

现在的问题就是求出一个 5e6 的区间中有哪些数是质数。区间筛直接莽即可。

\(q=3\) 时,值域缩小到了 \(10^6\),可以直接暴力筛出 \(2\times 10^6\) 中的素数然后暴力判断。

复杂度?\(18\) 以内除去 \(2,3\) 只有 \(5\) 个素数,实际上当 \(q=5\) 时,时间的影响就已经远不如 \(q=2\) 了。

复杂度是 \(O(k\log n\log\log n+\sqrt[4]{n}+\sqrt[3]{n})\)。

最后我们会得到 \(O(k)\) 个数,要在这里面寻找第 \(k\) 大的数很容易。

看上去很怪?实际上应该是比较稳的。

如果还觉得不稳的话,可以将 \(q\geq 5\) 时的数打表出来。

标签:LGP2291,log,质数,sqrt,素数,区间,复杂度
来源: https://www.cnblogs.com/lmpp/p/16085088.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有