今天刚做这道题,从5点多做到6:30,就一直想错在哪了。。。。。。后面才发现算到最后 num 和 x是要相等,相除得1的
/*
将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5。
思路:1、输入一个数num,如果num%x==0(x是从2到num),记录第一次的x。
用break跳出,再调用函数
2、再用num记录num除x的商,如果num%x==0(x是从2到num),
再记录第一次的x。
*/
class Test6
{
public static void main(String[] args)
{
int num = 90;
System.out.print(num+"的分解质因数有:");
yinshu(num);
}
public static void yinshu(int num)
{
for (int x=2;x<=num-1 ;x++ )//这个地方是num 和 x是要相等的。。。要不然会少算一个质因数。。
{
if (num%x==0)
{
num=num/x;
System.out.print(x+" ");
yinshu(num);
break;
}
}
}
}
|
|