Prime factorization of a number【1月19日学习笔记】
点击查看代码
//Prime factorization of a number
#include<iostream>
#include<cmath>
using namespace std;
void primefactorization(int n) {
for (int i = 2; i <= sqrt(n); i++) {//质因数(除去本身)最多只有一个在根号n右侧
if (n % i == 0) {//i从2开始,短除法
int count = 0;
while (n % i == 0) {//连续除以i至不能整除
n = n / i;
count++;//记录指数
}
cout << i << "^" << count << " ";
}
}
if (n != 1) cout << n << "^" << 1;//最终的商,1或质因数(因为上面只循环到了根号n,所以会出现商为质因数的情况)
//且最终的商不可能是合数,因为最终的商必定不含根号n左侧的质因子,且根号n右侧最多只有一个质因子构不成合数
cout << endl;
}//时间复杂度:O(sqrt(n))
int main() {
int n;
cin >> n;
primefactorization(n);
}
合集:
数论编程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】