java:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行

java:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质... java:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已结束,打印出即可。
(2)如果n<或>,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
展开
 我来答
期待后续
推荐于2017-12-16 · TA获得超过243个赞
知道小有建树答主
回答量:269
采纳率:33%
帮助的人:179万
展开全部

程序运行截图:


代码:

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);
}
}
}
若水道勤
推荐于2017-12-29
知道答主
回答量:2
采纳率:0%
帮助的人:1803
展开全部

package com.分解一个正整数的质因数;
public class Test1 {
public static void main(String[] args){
decompose(“输入一个你想的数”);
}
private static void decompose(int n){

System.out.print(n+"=");
for(int i=2;i<n+1;i++){
while(n%i==0 && n!=i){
n/=i;    //n=n/i;
System.out.print(i+"*");
}
if(n==i){
System.out.println(i);
break;
}
}
}
}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fac585e
2016-05-24 · TA获得超过218个赞
知道小有建树答主
回答量:256
采纳率:50%
帮助的人:96.5万
展开全部
int n =81;
System.out.print(n+"因式分解为:"+n+"=");
for(int i=2;i<n;){
if(n%i == 0){
n = n/i;
System.out.print(i+"*");
}
else{
i++;
}
}
System.out.print(n);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式