
这里有个性质: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++;
- }
-
-
相关阅读:
代码坏味道
基于飞机配电优化负荷管理系统研究(Matlab代码实现)
阿里内网不传之秘:Java微服务实战笔记,共140个案例手把手教学,让你成为高级java程序员
【无标题】
Vue2高级-axios和vue-resource、配置代理服务器(解决跨域问题)
Python学习基础笔记七十七——json序列化
【Python第三方包】实现自动化(pyautogui包)
甲骨文真的要开放Java EE?
STM32 外部中断
readline
-
原文地址:https://blog.csdn.net/weq2011/article/details/127947274