• 素数及质因数分解


    import java.util.HashMap;
    import java.util.Map;
    
    public class PrimeNumber {
    
    	public static void main(String[] args) {
    		boolean res = isPrime(7);
    		System.out.println(res);
    		Map<Integer, Integer> map = primeFactor(100);
    		StringBuilder sb = new StringBuilder();
    		for(Map.Entry<Integer, Integer> entry:map.entrySet()){
    			int k = entry.getKey();
    			int v = entry.getValue();
    			for (int i = 0; i < v; i++) {
    				sb.append("*"+k);
    			}
    		}
    		System.out.println(map);
    		System.out.println(sb.substring(1));
    	}
    	
    	/**
    	 * 检查num是不是素数
    	 * 2~根号n
    	 */
    	public static boolean isPrime(long num){
    		for (int i = 2; i*i <= num; i++) {
    			if (num%i==0) {
    				return false;
    			}
    		}
    		return true;
    	}
    	
    	/**
    	 * 质因素分解:100 = 2*2*5*5
    	 * map是质因数-出现次数的映射
    	 */
    	public static Map<Integer, Integer> primeFactor(int num){
    		Map<Integer, Integer> map = new HashMap<>();
    		for (int i = 2; i*i <= num; i++) {
    			while(num%i==0){
    				Integer v = map.get(i);
    				if (v==null) {	
    					map.put(i, 1);
    				}else {
    					map.put(i, v+1);
    				}
    				num /= i;
    			}
    		}
    		return map;
    	}
    
    }
    

      

  • 相关阅读:
    EL表达式 (详解)
    宜信面试整理
    Java 合并两个排序数组
    动态规划初识(爬楼梯问题)
    二叉树的最小深度
    ElasticSearch 单字符串多字段查询评分问题
    ES 分词
    汽车之家 面试总结
    浪潮之巅读书笔记
    闲徕互娱 面试总结
  • 原文地址:https://www.cnblogs.com/xiaoyh/p/10336658.html
Copyright © 2020-2023  润新知