- /*
- 求解:对一个数进行质因数分解
- 思路:分解质因数,就是把一个合数分解成质数相乘如12=2*2*3;
- 设计到多次除法,用递归调用。
- 步骤:1.把一个数从2到自身减一取余数,如果不等于0的continue,
- 2.如果取余为0,将被除数储存到数组中,余数暂时存到一个变量中,
- 余数重新进行递归判断。
- 3.如果数组中0脚标数为0,则判断这个数不是合数。
- */
- class DivisionDemo
- {
- static int count=0;
- static int remainder=0;
- static int arr[]=new int[10];
- public static void main(String[] args)
- {
-
- divComposite(7);//传入需进行质因数分解的数
- method(arr);
- }
- public static int divComposite(int num)
- {
- for(int i=2;i<num;i++)
- {
- if((num%i)!=0)
- continue;
- else
- {
- arr[count++]=i;
- remainder=num/i;
- //递归调用
- divComposite(remainder);
- //调用一次之后直接跳出循环
- break;
- }
- }
- arr[count]=remainder;//数组最后一个质数是余数
- return remainder;
- }
- public static void method(int[] arr)
- {
- if(arr[0]==0)
- {
- System.out.println("该数不是合数,不能进行质因分解!");
- }
- else
- {
- print(arr);//调用数组打印函数
- }
- }
- public static void print(int[] arr)//数组打印函数
- {
- for(int x=0;x<arr.length;x++)
- {
- System.out.print(arr[x]+",");
- }
- }
- }
复制代码 |