• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

java 求任何整数的因子

JAVA相关 水墨上仙 1441次浏览

java 求任何整数的因子

public class T1 {
	
	/**
	 * 分析这个数是不是质数
	 * @param num
	 */
	public static boolean isZhishu(int num){
		 
	switch (num) {
	 case 1:
	 case 2:
	 case 3:
		return true;
	 }
	int temp=0;
		 for(int i=2;i<num/2+1;i++){
			 if(num%i==0){
				temp++;
				break;
			 }
		 }
		 if(temp!=0){
			 return false;
		 }
		return true;
	}
/**
 * 得到一个数所有的因数
 * @param num
 * @return
 */
	public  static  List<Integer>  zhengChu(int num){
		
		List<Integer> integers=new ArrayList<Integer>();
			 for(int i=2;i<num/2;i++){
				 if(num%i==0){
					 integers.add(i);
				 }
			 }
          
			return integers;
		}
	/**
	 * 
	 * @param args
	 */
	public static  void main(String[] args) {
	       
	    int num=120;
	    
	    Set<Integer> integers=new HashSet<Integer>();
	    
	    Set<Integer> integers2= T1.test(num, integers);
	    System.out.println(integers2);
	    //打印结果
	    for (Integer integer : integers2) {
			System.out.println(integer);
		}
  
	}
	/**
	 * 正式求解
	 * @param num
	 * @param data
	 * @return
	 */
	public static Set<Integer>  test(int num,Set<Integer> data){
		
		if(data==null){
			data=new HashSet<Integer>();
		}
		 if(T1.isZhishu(num)){
			 System.out.println(num);
		 data.add(num);	
		}
		else{
			List<Integer> temp=T1.zhengChu(num);
			for(Integer integer:temp){
				test(integer, data);
			}
		}
		 return data;
	}
}


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明java 求任何整数的因子
喜欢 (0)
加载中……