news 2026/7/19 14:25:46

Java分解质因数搞到崩溃?别哭!一个素数数组直接封神

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java分解质因数搞到崩溃?别哭!一个素数数组直接封神

这段代码, 我费了好大劲才弄出来, 而且还是参考了网上的, 心里有点失落呀, 给你加油啦宝贝!

将质因数进行分解, 拿到这个, 我就把它分成两部分, 其一, 要是输入的数属于素数, 那就直接输出就行, 仅需一个用于判断素数的函数, 这个是相对比较简单的。其二, 当输入的并非素数时, 刚开始我所想的, 是去除以2、3、5、7、11, 打算展开分类讨论, 然而我还是太过稚嫩了, 我自己所测试的数据规模比较小, 当数据规模变得比较大的时候, 这种做法就不成立了, 所以只能向网络求助, 看到别人弄出了一个素数数组出来, 这才完全醒悟过来。遍历代码之际,存在一个关键步骤, 举例而言, 针对数字16, 它能够被分解成2*2*2*2。因而提出要求, 我们针对那些并非仅被去除一次的数, 都要自数组的首个素数起始再度进行去除操作。如此一来, 就需要每次为数组索引赋予一个初始值, 此初始值即为 -1。当对其执行++操作时, 数组便会回到首个素数所在之处。

存在着对于字符串的运用, 令人惊讶地发觉, 除去main函数之外, 别的函数同样能够调用自己所编写的函数。

import java.util.Scanner; //构造一个素数数组,用它去除那些合数 public class composite { public static void main(String[] args) { Scanner in=new Scanner(System.in); int number=in.nextInt(); if(isPrime(number)) { System.out.print(number+"="+number); } else { Out(number); } } //素数的函数 public static boolean isPrime(int i) { boolean isPrime =true; for(int k=2;k<=(int)Math.sqrt(i);k++) { if(i%k==0) { isPrime=false; break; } } return isPrime; } public static void Out(int n) { int[] PrimeNumber=new int[200];//素数的数组,前20个素数 int count=0;//数组下标 int i; String string = "" + n + "="; boolean sign; //作为是否是素数的标记 //构造出一个含有200个素数的数组primeNumber[200] for (i = 2; count < 20; i++) { //判断该数是否是素数,如果是,就保存到数组primeNumber[num]中 if (isPrime(i)) { PrimeNumber[count] = i; count++; } } for(i=0;i<20;i++) { if(n%PrimeNumber[i]==0) { n/=PrimeNumber[i]; //这个if语句可以执行多次,当一个语句要执行多次时,可以考虑用if来实现。 if(n!=1) { string+=PrimeNumber[i]+"x"; } else { string+=PrimeNumber[i]; break; } i=-1;//让每次都k=0开始,就可以让变化后的n去从2开始去除 } } System.out.print(string); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 14:25:36

从新手到高手:GKNavigationBarViewController实战案例大全

从新手到高手&#xff1a;GKNavigationBarViewController实战案例大全 【免费下载链接】GKNavigationBarViewController iOS自定义导航栏-导航栏联动 项目地址: https://gitcode.com/gh_mirrors/gk/GKNavigationBarViewController GKNavigationBarViewController是一款功…

作者头像 李华
网站建设 2026/7/19 14:24:02

Talisman NLP工具包:分词、词干提取与语音编码技术详解

Talisman NLP工具包&#xff1a;分词、词干提取与语音编码技术详解 【免费下载链接】talisman Straightforward fuzzy matching, information retrieval and NLP building blocks for JavaScript. 项目地址: https://gitcode.com/gh_mirrors/tal/talisman Talisman是一个…

作者头像 李华
网站建设 2026/7/19 14:23:10

无侵入式数据治理(下):哪些场景最适合零改造落地数据治理

在上篇与中篇中&#xff0c;我们讲透了 Headless 无侵入治理的架构优势与核心能力&#xff0c;它既保留了完整的管控与审计能力&#xff0c;又做到了业务零改造、零感知&#xff0c;大幅降低了治理落地的门槛。 但没有任何一种方案适合所有企业&#xff0c;无侵入治理也有其最适…

作者头像 李华
网站建设 2026/7/19 14:23:08

03-界面与快捷键

OpenCode 操作指导书&#xff08;三&#xff09;&#xff1a;界面与快捷键 适用版本&#xff1a;OpenCode v1.18.3 本篇目标&#xff1a;认识 OpenCode 的终端界面&#xff08;TUI&#xff09;布局&#xff0c;掌握 Leader 键与常用快捷键&#xff0c;并学会自定义主题与键位。…

作者头像 李华
网站建设 2026/7/19 14:21:46

海康威视硬盘录像机 摄像机刷机工具hiktool 无限制版

海康威视硬盘录像机 摄像机刷机工具hiktool 无限制版&#xff0c;监控机&#xff0c;摄像机不开机&#xff0c;黑屏等等可以使用这个软件来修复&#xff0c;这个软件不包含刷机固件&#xff0c;这一款软件不能解决所有问题&#xff0c;只能对一些老款录像机&#xff0c;摄像机有…

作者头像 李华