- //定义一个获取质因数静态方法,需要传入一个Int类型的值,和一个Integer类型集合
- public static void ZhiYinShu(int num,ArrayList<Integer> nums)
- {
- //分析可得,最小质因数除1之外,只有2,3,5
- //所以分别判断传入的数%2,%3,%5是否等于0
- //如果等于零,则表示该数包含该质因数
- if(num % 2 == 0)
- {
- nums.add(2);
- //然后让num 除以2
- num = num / 2;
- }
- if(num % 3 ==0)
- {
- nums.add(3);
- num = num / 3;
- }
- if(num % 5 ==0)
- {
- nums.add(5);
- num = num/5;
- }
- //这个判断是为了控制递归,如果该数做了以上操作后 还满足以下情况则继续调用本函数
- if(num % 3==0 ||num % 5 == 0|| num%2 == 0)
- {
- ZhiYinShu(num,nums);
- }
- //否则就直接跳出,结束函数
- else
- {
- return;
- }
- }
复制代码 我是用递归做的
|