c/c++ 分解质因数——(蒟蒻讲解)
正文:
代码简短,见注释,本蒟弱看了大佬题解来写的,一道比赛题里面用了
大佬题解
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int n_sqrt = sqrt(n);
//循环截至条件到根号n就行
//从2开始,遇到的第一个因数,一定是质数
//比如24,遇到了2,就一直除,直到余数不为0
//有人说,4也是24的因数啊,但是不是质数
//这个在遇到2时,一直除,这里已经将4除掉了
//24已经变成3了
for(int i=2;i<=n_sqrt;i++)
{
if(n%i==0)//
{
while(n%i==0)
{
n/=i;
cout<<i<<endl;
}
}
}
//像24这样的数 ,24 = 2*2*2*3,最后n变成了1
//但是像22这样的数,22=2*11,但是11>sqrt(22),所以需要判断一下
//又如11这样的数,11 = 11*1,这个判断也能处理
if(n!=1) cout<<n<<endl;
return 0;
}
例子:
24
输出:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话