zoukankan      html  css  js  c++  java
  • 素数及质因数分解

    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;
    	}
    
    }
    

      

  • 相关阅读:
    Luncence .Net 使用
    Quartz 使用
    asp.net mvc 部分视图加载区别
    C学习笔记-内存管理
    C学习笔记-内存管理
    C学习笔记-结构体
    C学习笔记-结构体
    C学习笔记-指针
    C学习笔记-指针
    dll的封装和使用
  • 原文地址:https://www.cnblogs.com/xiaoyh/p/10336658.html
Copyright © 2011-2022 走看看