博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
#548. 数学
阅读量:5291 次
发布时间:2019-06-14

本文共 968 字,大约阅读时间需要 3 分钟。

【题目描述】:

JATC的数学老师总是给课堂一些​​有趣的数学问题,这样他们就不会觉得无聊。今天问题如下。给定一个整数n,您可以零次或多次执行以下操作:

1、 MUL X:替换n为n乘以X (X是一个任意的正整数)。

2、 sqrt:替换n为sqrt(n)(要应用此操作,sqrt(n)必须是整数)。

你可以多次使用这些操作,使得n变为最小,并找到使n变为最小的最少操作次数。

显然,班上没有人知道这个问题的答案,也许你可以帮助他们?

【输入描述】:

输入一个整数n(1≤n≤10^15)初始数字。

【输出描述】:

输出两个整数,第一个为n能够变成的最小值,第二个为最少操作次数。

【样例输入1】:

20

【样例输出1】:

10 2

【样例输入2】:

5184

【样例输出2】:

6 4

【样例说明】:

在第一个示例中,可以应用mul 5操作得到 100,然后sqrt得到10。

在第二个示例中,可以先应用sqrt来获取72,然后MUL 18 得到 1296最后两个sqrt,你得到6。

注意,即使初始值n少于或等于 10^6,但在应用一个或多个操作之后,它仍然可能变得超过10^6。

【时间限制、数据范围及描述】:

时间:1s 空间:256M

30%的数据:最多只是用其中一个操作;

60%的数据:1≤n≤10^6

100%的数据:1≤n≤10^15

转载于:https://www.cnblogs.com/xiongchongwen/p/11351694.html

你可能感兴趣的文章
FZU 2129 子序列个数 (动态规划)
查看>>
20155324 2016-2017-2 《Java程序设计》第7周学习总结
查看>>
CSS清浮动处理(Clear与BFC)
查看>>
thinkphp路由
查看>>
HDU - 1248-寒冰王座
查看>>
angular OnChange事件
查看>>
owin Oauth
查看>>
java String 强化操作 判断数字 字符串转阿拉伯数字,相似度等等
查看>>
Win(Phone)10开发第(5)弹,本地媒体服务器的一些注意事项
查看>>
[HDU5536] Chip Factory
查看>>
kettle转换和作业插件开发及调试
查看>>
npm run dev时报错“events.js:160 throw er; // Unhandled 'error' event”
查看>>
[java学习笔记]freemarker模板的页面静态化
查看>>
WebAPI使用多个xml文件生成帮助文档
查看>>
Android 获取手机本机内存、SD卡内存使用情况
查看>>
Use Drozer To Find SQL Inject In Diva Apk
查看>>
Qt中delete的问题
查看>>
Json数据格式
查看>>
Java String.split()用法小结(转载)
查看>>
自我介绍
查看>>