
这里有个性质:n中最多只含有一个大于sqrt(n)的因子。证明通过反证法:如果有两个大于sqrt(n)的因子,那么相乘会大于n,矛盾。证毕
于是我们发现最多只有一个大于sqrt(n)的因子,对其进行优化。先考虑比sqrt(n)小的,代码和质数的判定类似
最后如果n还是>1,说明这就是大于sqrt(n)的唯一质因子,输出即可。
时间复杂度:O(sqrt(N)))!
代码:
- #include
- using namespace std;
- int n,t,s;
- void f(int x)
- {
- for(int i = 2;i <= x / i;i++)
- if(x % i == 0)
- {
- s = 0;
- while(x % i == 0)
- {
- x /= i;
- s++;
- }
-
-
相关阅读:
数字孪生技术在智能家居中的应用
文件上传漏洞(CVE-2022-30887)
开源实时数仓 Apache Doris 毕业了,未来如何走得更远?
CSS 3D绚烂粒子
【系统设计系列】缓存
CLUE模型构建方法、模型验证及土地利用变化情景预测实践技术
Au 入门系列之二:录音
数仓搭建-ODS层
电机基础知识
使用Nginx可视化管理工具+Cpolar在本地搭建服务器并实现远程访问【内网穿透】
-
原文地址:https://blog.csdn.net/weq2011/article/details/127947274