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)
// }
}
}
Java实现k个数乘(cheng)(自然数的k乘积问题)的更多相关文章
- 算法笔记_035:寻找最小的k个数(Java)
目录 1 问题描述 2 解决方案 2.1 全部排序法 2.2 部分排序法 2.3 用堆代替数组法 2.4线性选择算法 1 问题描述 有n个整数,请找出其中最小的k个数,要求时间复杂度尽可能低. 2 ...
- Java实现寻找最小的k个数
1 问题描述 有n个整数,请找出其中最小的k个数,要求时间复杂度尽可能低. 2 解决方案 2.1 全部排序法 先对这n个整数进行快速排序,在依次输出前k个数. package com.liuzhen. ...
- 【剑指Offer】29、最小的K个数
题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 解题思路: 本题最直观的解法就是将输入的n个整数排 ...
- 编程之法:面试和算法心得(寻找最小的k个数)
内容全部来自编程之法:面试和算法心得一书,实现是自己写的使用的是java 题目描述 输入n个整数,输出其中最小的k个. 分析与解法 解法一 要求一个序列中最小的k个数,按照惯有的思维方式,则是先对这个 ...
- 面试题40:最小的 k 个数
import java.util.Arrays; /** * Created by clearbug on 2018/2/26. * * 面试题40:最小的 k 个数 * * 注意:因为前两天在陌陌面 ...
- 算法系列:寻找最大的 K 个数
Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. -- ...
- 编程之美2.5:寻找最大的K个数
编程之美2.5:寻找最大的K个数 引申:寻找第k大的数: 方法一: // 选择第k大的数(通过改进快速排序来实现) public static void SelectShort(int[] array ...
- 剑指Offer28 最小的K个数(Partition函数应用+大顶堆)
包含了Partition函数的多种用法 以及大顶堆操作 /*********************************************************************** ...
- 第2章 数字之魅——寻找最大的K个数
寻找最大的K个数 问题描述 在面试中,有下面的问答: 问:有很多个无序的数,我们姑且假定它们各不相等,怎么选出其中最大的若干个数呢? 答:可以这样写:int array[100] …… 问:好,如果有 ...
随机推荐
- 仿真FFT(quartus安装)
软件下载:http://dl.altera.com/13.1/?edition=subscription 安装步骤: 接下来,仿真FFT: http://www.openhw.org/article/ ...
- input输入框直接拉起九宫格数字键盘
<input type="number" pattern="\d*">
- nginx default server
配合server_name _ 可以匹配所有的域名,在设置default server 可以轻松屏蔽一些非域名访问的请求. 配置如下 server { listen 80 default_server ...
- keepalived的一些。。
继续采坑..有些坑,踩了才知道. 1.文件位置不能错. 首先是安装, 源码编译,--prefix=/usr/local/keepalive 然后用 sbin/keepalive -f ...conf ...
- linux 被入侵后扫尾工作
比较恶心,安装了后门,还把ssh sshd 给改了,服务器在机房,还不大好处理,如果贸然上去改,还容易把自己关在外面. 但是我有salt ,上面可以用cmd.run运行一切命令.不走sshd服务. l ...
- Element Form表单实践(上)
作者:小土豆biubiubiu 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/58c61b4361ff4b005d9e8 ...
- Codeforces1157A(A题)Reachable Numbers
A. Reachable Numbers Let's denote a function f(x)f(x) in such a way: we add 11 to xx, then, while th ...
- 数据结构----二叉树Tree和排序二叉树
二叉树 节点定义 class Node(object): def __init__(self, item): self.item = item self.left = None self.right ...
- Django之ORM配置与单表操作
ORM数据库操作流程: 1. 配置数据库(项目同名包中settings.py和__init__.py) 2. 定义类(app包中models.py),执行建表命令(Tools---> ...
- Spring IoC createBean 方法详解
前言 本篇文章主要分析 Spring IoC 的 createBean() 方法的流程,以及 bean 的生命周期. 下面是一个大致的流程图: 正文 AbstractAutowireCapableBe ...