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);elseSystem.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乘积问题)相关推荐
- 剑指offer——最小的K个数和数组中第K大的元素
解题思路: 乘着做这个题,顺便复习下堆排序. 先说堆排序是一个什么东西:https://blog.csdn.net/u013384984/article/details/79496052 大顶堆升序, ...
- 求解N个值中最大的k个数,N远大于k
该方法思想:将N个数分为N/K段,查找每一段的最大值,然后在N/k个最大值中选择一个最大值,然后在选择最大值的那段中,再选择一个最大值,一次类推直到完成K个最大值的选择 时间复杂度接近O(n) 代码如 ...
- [剑指offer][JAVA][面试第40题][最小的k个数][快选][堆][BST]
[问题描述]面试第40题 最小的k个数 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例 : 输入:arr ...
- JAVA素因子只有3 5 7_第k个数
14 /* * 时间复杂度O(N),按书中所讲,3个素数因子3.5.7分为三个队列 q3,q5,q7,其中最初存放3,5,7 * 之后每次添加找到三个队列头中最小的数,起初为3,将3移出队列 q3后, ...
- 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个整数排 ...
- [剑指 offer]--大顶堆 ➕ 快速选择 --面试题40. 最小的k个数
1 题目描述 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例 1: 输入:arr = [3,2,1], ...
- c语言从4个整数中找最小的数,编程之法:面试和算法心得(寻找最小的k个数)...
内容全部来自编程之法:面试和算法心得一书,实现是自己写的使用的是java 题目描述 输入n个整数,输出其中最小的k个. 分析与解法 解法一 要求一个序列中最小的k个数,按照惯有的思维方式,则是先对这个 ...
- 算法试题 - 找出最小 k 个数
题目 题目:输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 解析 思路1 这一题应用堆排序算法复杂度只有O(nlog k), ...
最新文章
- 110道 Jvm面试题总结及答案 (持续更新)
- Flask之DButils
- linux系统从开机到登录之前的启动流程
- c语言while计算机编写,计算机等级考试二级C语言(while与dowhile循环)
- bigint最大有多少位_一台 Java 服务器可以跑多少个线程?
- 在ubuntu上搭建LNMP服务器
- 【资料整理】cisco [acl]
- 直接请求接口_【分享】接口是什么?实现原理的是什么?
- php学习redis买什么书,redis
- WordPress模板iDowns1.8.3+支持对接Erphpdown
- 不谋一时不足以谋一域_请问不谋万世者不足谋一时,不谋全局者,不足谋一域,接下来是什么?这段话太精辟了,能不能把全文发送过来?...
- 纯前端 HTML+JS版, Vue.js版 二维码:生成、扫描、识别、解析、扫一扫
- <!DOCTYPE html>是什么意思?
- WAV高清语音格式音频
- 新媒体运营教程:短视频剧本创作技巧
- 计算机中遇到的问题英语,电脑故障英语对话
- 无需安装的Linux Live CD--第二篇:实战Knoppix
- 智能汽车大爆发,车企创新为何首选华为云?
- 【电脑讲解】电脑D盘不见了怎么恢复
- @Configurable
热门文章
- 知识图谱在深度学习目标检测中的应用
- MAPSTRUCT(@Mapper用法)
- ajax machine tool,Machine Tool
- hdu 1276 士兵队列训练问题
- IAR_EW430 的使用
- 织梦 plus/download.php,织梦DedeCMS 5.7SP1 /plus/download.php url重定向漏洞的解决方法
- [技术干货] 惠普3par命令行配置snmptrap
- Linux 的 I / O 虚拟化 virtio 框架详解
- Cadence PSpice 补充6:通用信号源的详细介绍与使用方法图文演示
- Gitblit搭建及Git协作开发流程