zoukankan      html  css  js  c++  java
  • Java实现k个数乘(cheng)(自然数的k乘积问题)

    k个数乘(cheng)

    题目描述
    桐桐想把一个自然数N分解成K个大于l的自然数相乘的形式,要求这K个数按从小到大排列,而且除了第K个数之外,前面(K-l)个数是N分解出来的最小自然数。例如:N=24,K=2时,输出为24=2×12,而不是24=4×6;如N=3,K=I时,3=3; N=3,K=2时,输出则为“No answer!”。你能帮助她吗?

    输入
    第1行:N(2≤N≤107);
    第2行:K(1≤K≤100)。

    输出
    输出样例格式的分解式。

    样例输入
    24
    2
    样例输出
    24=2*12

    import java.util.Scanner;
    
    public class k个数乘2 {
    	public static int n = 0, k = 0,count=0;
    	public static boolean bool = false;
    	public static StringBuilder sb = new StringBuilder("");
    
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		n = sc.nextInt();
    		k = sc.nextInt();
    		sb.append(n + "=");
    		if(Math.pow(2, k)>n){
    			System.out.println("No answer!");
    			System.exit(0);
    		}
    		sc.close();
    		StringBuilder sb = new StringBuilder("");
    		sb.append(n+"=");
    		int m=n;
    		
    		while(n!=1&&--k>0){
    			
    			A:for (int i = 2; i <=n; i++) {
    				if(n%i==0){
    					n/=i;
    					sb.append(i+"*");
    //					k--;
    					break A;
    				}
    //				if(i==Math.sqrt(m)-2) {
    //					System.out.println("asd");
    //				}
    			}
    		}
    //		System.out.println(sb);
    		if(n!=1){
    			sb.append(n);
    			
    		}
    		else{
    			sb.deleteCharAt(sb.length()-1);
    		}
    //		System.out.println(k);
    		if(k==0)
    			System.out.println(sb);
    		else
    			System.out.println("No answer!");
    //		int [] num = new int [k];
    //		for (int i = 0; i < num.length; i++) {
    //			num[i]=2;
    //			n/=2;
    //		}
    //		int nums =(int) Math.pow(2, k);
    //		int index =k-1;
    //		while(n!=1){
    ////			if(nums/ num[index]++ *num[index]>n)
    //		}
    		
    		
    		
    	}
    
    }
    
    
  • 相关阅读:
    UDP and netstat
    UDP learn by Python3
    UDP headers and checksum
    routetrace
    IPv4 headers
    Commands for IP
    IP checksum
    POJ 3667 Hotel 线段树处理区间信息
    【枚举】Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) Div2C题
    二分图最大匹配模板 HDU1083
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12946507.html
Copyright © 2011-2022 走看看