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

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的值,重复执行第一步。

程序运行截图:


代码:

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);
}
}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-29

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;
}
}
}
}

本回答被网友采纳
第2个回答  2016-05-24
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);
}

...例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行
代码:public class Test {public static final void main(String[] args) {\/\/ 质数(prime number)又称素数\/\/ 对n进行分解质因数,应先找到一个最小的质数kSystem.out.println("该程序实现一个正整数分解质因子");System.out.println("请输入一个正整数:");Scanner scanner = new Scanner(Syst...

...正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
package one;import java.util.*;public class ProOne { \/\/题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。\/\/程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:\/\/(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。\/\/(2)如...

【程序4】 题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*...
分解质因数

题目:将一个正整数分解质因数。例如:输入 90, 打印出 90=2*3*3*5 ?
\/\/1:输出最后一个因子。一定是1,如果上面for有=num也输出来了,所以只剩下1 \/\/即:num==1;\/\/2:如果for没有=num的情况,那么,不一定是1的情况,可能还是其他,可以根据自己的需要改。printf("%d",num);return 0;}

...正整数分解质因数。例如:输入90,打印出90=2*3*3*5
声明一int型变量n接收键盘输入并限制为正数。另一int型变量i初值赋2,用i去除n,能被整除则输出i为质因数,并将n赋值为n\/i;不能整除则i增1再去除n的新值……如此反复至n==1为止。输出时,在n==1之前增印一个*号表示“乘”。代码如下:include "stdio.h"int main(int argc,char *argv[]...

java的经典例题
【程序3】 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用...

使用C# 语言编写代码,将一个正整数分解质因数,例如:输入90,打印输出90...
{ static void Main(string[] args){ int intnum = 90;\/\/输入的数字 bool bol = true;\/\/while循环的条件 int[] intaa = new int[intnum];\/\/存储分解的质因数 int arrayIndex = 0;\/\/intaa的索引 bool bol1 = true;\/\/判断是否循环完毕 while (bol)\/\/while控制整数分解质因数的...

90分解质因数是多少Python
导读:今天首席CTO笔记来给各位分享关于90分解质因数是多少Python的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!90的质因数是多少90分解质因数:2*3?*5 把90分解质因数:90=2×3×3×5;故答案为:90=2×3×3×5....

怎么用C语言将一个正整数分解质因数.例如,输入90,输出90=2*3*3*5
void main(){int m,i,j=0;printf("please input the number:\\n");scanf("%d",&m);for(i=2;i<=m;i++){while(m%i==0){j++;if(j==1) printf("%d=%d",m,i);else printf("*%d",i);m=m\/i;} } } 没有用中文,怕你用的是TC,那就会出现乱码,这程序关键在于寻找质因数...

怎样把一个数分解成质因数的乘积
给定一个整数,将其分解为质因数的乘积,如输入90,输出“90=2*3*3*5”。(质因数的数目最多为10个)。思路:输入一个数n,将2...d(d为n每次分解后所得的值,初始值为n)的所有数都按下面的操作遍历一遍,先判断该数是否为素数,若为素数,则判断该数是否能被d整除,若能整除则一直整除,...

相似回答