java语言将一个正整数分解质因数 我知道更简便的方法,就想知道这里哪里错了 5
//将一个正整数分解质因数//方法pduanduan(n)是判断一个intn是否为质数并返回boolean类型//方法getZhiShu(n)是求得intn的所有质数并返...
//将一个正整数分解质因数
//方法pduanduan(n)是判断一个int n是否为质数并返回boolean类型
//方法getZhiShu(n)是求得int n的所有质数并返回为一个矩阵
public static void fenjie(int n) {
if(n==1 || panduan(n)) {
System.out.println(n+"="+n);
}else {
int[] arr = getZhiShu(n);
int length = arr.length;
int[] arr1 = new int[100];
int j = -1;
int n1 = n;
while(true) {
for(int i=0;i<length;i++) {
if(n1%arr[i]==0) {
j++;
//System.out.println(j);
arr1[j]=arr[i];
n1 = n1/arr[i];
if(panduan(n1)) {
arr[j+1] = n1;
System.out.print(n+"=");
for(int s=0;s<=j+1;s++) {
if(s<=j) {
System.out.print(arr[s]+"*");
}else {
System.out.print(arr[s]);
}
System.out.println();
return;
}
System.out.println(n1);
}else {
break;
}
}
}
}
}
} 展开
//方法pduanduan(n)是判断一个int n是否为质数并返回boolean类型
//方法getZhiShu(n)是求得int n的所有质数并返回为一个矩阵
public static void fenjie(int n) {
if(n==1 || panduan(n)) {
System.out.println(n+"="+n);
}else {
int[] arr = getZhiShu(n);
int length = arr.length;
int[] arr1 = new int[100];
int j = -1;
int n1 = n;
while(true) {
for(int i=0;i<length;i++) {
if(n1%arr[i]==0) {
j++;
//System.out.println(j);
arr1[j]=arr[i];
n1 = n1/arr[i];
if(panduan(n1)) {
arr[j+1] = n1;
System.out.print(n+"=");
for(int s=0;s<=j+1;s++) {
if(s<=j) {
System.out.print(arr[s]+"*");
}else {
System.out.print(arr[s]);
}
System.out.println();
return;
}
System.out.println(n1);
}else {
break;
}
}
}
}
}
} 展开
1个回答
展开全部
import java.util.Scanner;
public class TestNum3 {public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//这儿是要做输入验证的,不过我就略了吧!
System.out.println("请输入数字");
int num= scanner.nextInt();
System.out.println("结果:");
System.out.println(num+"="+getPrimeNumberStyle(num));}
public static String getPrimeNumberStyle(int num){int temp=0;for (int i = 2; i < num+1; i++) {if(num%i==0i!=num){int n=num/i;return i+"*"+getPrimeNumberStyle(n);}temp=i;}return ""+temp;}} //像这种问题希望你复习一下数学知识,你解决它以后会很有成就感的!这个解决过程还是//数学原理在程序中的应用,希望能帮到你
public class TestNum3 {public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//这儿是要做输入验证的,不过我就略了吧!
System.out.println("请输入数字");
int num= scanner.nextInt();
System.out.println("结果:");
System.out.println(num+"="+getPrimeNumberStyle(num));}
public static String getPrimeNumberStyle(int num){int temp=0;for (int i = 2; i < num+1; i++) {if(num%i==0i!=num){int n=num/i;return i+"*"+getPrimeNumberStyle(n);}temp=i;}return ""+temp;}} //像这种问题希望你复习一下数学知识,你解决它以后会很有成就感的!这个解决过程还是//数学原理在程序中的应用,希望能帮到你
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询