Java小程序:正整数分解质因数
2016-05-25 13:56
447 查看
java:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已结束,打印出即可。
(2)如果n<或>,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n重复执行第一步。
程序运行截图:
代码:
public class Test {
public static final void main(String[] args) {
// 质数(prime number)又称素数
// 对n进行分解质因数,应先找到一个最小的质数k
System.out.println("该程序实现一个正整数分解质因子");
System.out.println("请输入一个正整数:");
Scanner scanner = new Scanner(System.in);
int n = Integer.valueOf(scanner.nextLine());
System.out.println("n = " + n);
Test localTest = new Test();
// 存储质因子
List<Integer> primeList = new ArrayList<Integer>();
localTest.factorizationIntoPrimeNumbers(n, primeList);
System.out.print("n = ");
for (int i = 0; i < primeList.size(); i++) {
if (i == 0) {
System.out.print(primeList.get(i));
} else {
System.out.print("*" + primeList.get(i));
}
}
}
private void factorizationIntoPrimeNumbers(int n, List<Integer> primeList) {
// n的最小质数
int minPrime = 0;
boolean flag = true;
// 查询n中的质数
for (int i = 2; i <= n && flag; i++) {
for (int j = 2; j <= i; j++) {
if (j == i) {// j是质数
if (n % j == 0) {// j是n的质因子
minPrime = j;
flag = false;
break;
}
} else if (i % j == 0) {// j不是质数
break;
}
}
}
if (minPrime == n) {// 这个质数恰等于n,则说明分解质因数的过程已结束,打印出即可
System.out.println("质因子:" + n);
primeList.add(minPrime);
} else if (minPrime != 0) {// n的最小质因子
System.out.println("质因子:" + minPrime);
primeList.add(minPrime);
factorizationIntoPrimeNumbers(n / minPrime, primeList);
}
}
}
相关文章推荐
- g++/gcc 常见选项。(muduo 编译小程序举例)
- Zabbix邮件报警详细设置(微信,email,script )
- Java小程序:实现三边是否能构成三角形
- 基于nodejs微信支付
- 安卓,ios,微信html5,position:fixed无效,会动。
- 两个小程序大概的了解一下java的线程
- 微信内嵌浏览器上传图片调用相机
- 微信开发【素材管理】上传临时素材
- 微信JS SDK Demo
- 玩转微信营销和推广的10种方法和技巧
- iOS 获取手机通信录(仿微信 支付宝 手机话费 流量充值效果)
- jQuery+PHP实现微信转盘抽奖功能的方法
- 看完这篇文章前千万别做微信营销
- Net MVC微信扫码支付
- 微信开发建站所需档案清单
- 单片机 学习笔记(二)——简单小程序
- 集成支付宝,微信支付
- 微信6.0界面实现难点
- 微信抢红包插件
- PHP和js判断访问终端是否是微信浏览器