5.功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子

题目描述(个人觉得难点在于需要封装一个计算所有质因子方法)
  功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(如180的质因子为2 2 3 3 5 )
最后一个数后面也要有空格

封装的方法详细描述:

public String getResult(long ulDataInput)

输入:
long ulDataInput:输入的正整数
返回值:
String

import java.util.*;

public class Main{
	
	public static void main(String[] args) {

	        Scanner scanner = new Scanner (System.in);
	        
	        long input = scanner.nextLong();
	        
	        String resu = calculate(input);
	        
	        System.out.println(resu);
	        
	    }
	    // 封装的计算所有质因子的方法
	    public static String calculate(Long input){
	    	String result="";
            int i;
	        for(i=2;i<Math.ceil(Math.sqrt(input));i++){
	            Long x = input % i;
	            if(x==0){
	                break;
	            }
	        }
	        if(i==Math.ceil(Math.sqrt(input))){
	        	if(i==2){
	        		result+="2 2 ";
	        	}else{
	        		result+=input+" ";
	        	} 
                return result;
	        }else{
                result+=i+" ";
	        	input=input / i;
	        	// 这里比较费时间,用了递归,最终将所有质因子一起返回
                return i+" "+calculate(input);
	        }
	    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值