求质数因子
描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
正常思路
public class Main{
public static void main(String[] args) {
// 处理输入
Scanner sc = new Scanner(System.in);
// 获取需要求解的值
int target = sc.nextInt();
int y = 2;// 因子从2开始算
while(y <= target){
if(target % y == 0) // 能够整除2
{
System.out.print(y+" ");
target /= y;
}else{
y++; //y值增加1
}
}
}
}
优化思路:当 y 增长到一定大小,则没必要再继续自增验证,因此可以增加一个判断,从而大大减少循环次数
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int target = sc.nextInt();
int y = 2;
while(y<=target){
if(target % y == 0) {
System.out.print(y+" ");
target /= y;
}else{// 更新y的值
if(y > target / y) y = target;// 当y>target/y时,剩余值为质数
else y++; //y值增加1
}
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~