public class Test {
创新互联建站-专业网站定制、快速模板网站建设、高性价比信丰网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式信丰网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖信丰地区。费用合理售后完善,十载实体公司更值得信赖。
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int num=40;//测试数据漏扮掘,你也可返核以用Scanner获取输入数据,但是为了方便
for(int i=2;i=num;i++){
while(num!=i){
if(num%i==0){
System.out.println("质因数是:"+i);
num=num/i;
}
else
break;
}
}
System.out.println("质因数是:缺者"+num);
}
}
因为你没有加结束的条件吵乎
在函数中第一行加
if(x==0)/宴碰手/x==0该子问题结束
return;
递晌嫌归两个必须元素:
(1)递归终止的条件
(2)分解问题
按照你的要漏余求编写的Java程序如下:
import java.util.Scanner;
public class CCT{
public static void 局搜改f(int n,int m){
int i=2;
if(n2)return;
while(!(n%i==0)){
i++;
}
if(m==1)System.out.print(i);
else System.out.print("*"+i);
f(n/i,m-1);
return;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
桐判 int n=sc.nextInt();
System.out.print(n+"=");
f(n,1);
System.out.println();
}
}
运行结果:
90
90=2*3*3*5
呵呵,楼主是初学者吧,这燃芹顷个只要动动脑筋,也很容易实现的。
且看看我的代码吧:
import java.util.*;
public class Nicki{
public static void main(String[] args){
System.out.println("java分解正整数质因数例子!");
System.out.println("请你输入一个正整数,并按Enter确认");
Scanner sc=new Scanner(System.in);
int Num=sc.nextInt();
//首先,我们需要得到,输入的这个数Num的一半以内的所有质数
VectorInteger vec;
vec=new Vector();
Lab:for(int i=2;i=Num;i++){
for(int j=2;j=i/2;j++){
if(i%j==0i!=2){//说明能被整除,则i不是质数
continue Lab;
}
}
//内层for正常完成后,说明i是质数
vec.add(i);//添加到列表
}
//下面开始分解质因数
System.out.println(Num+"的分解结果是:\n");
System.out.print(Num+"=");
int theNum=Num;
boolean help=true;
for(int k=0;kvec.size();k++){
int qq=(int)vec.get(k);
if(theNumqq)
break;
if(theNum%qq==0){//水明能被整除,则qq就是Num的一个质因数
if(help==true){
System.out.print(qq);
help=false;
}else{
System.out.print("*"+qq);
}
k--;//因为,完皮陆全有可能Num还能被qq整除,
//所以重新执行一遍
theNum=theNum/qq;
}
}
System.out.println("\n分解首乎完毕!");
}
}