万卷网 > 题目详情
题型:编程题

挑战怪物

时间限制:1.0 s

内存限制:512.0 MB

题面描述

小杨正在和一个怪物战斗,怪物的血量为h,只有当怪物的血量恰好为 0 时小杨才能够成功击败怪物。

小杨有两种攻击怪物的方式:

·物理攻击。假设当前为小杨第i次使用物理攻击,则会对怪物造成2i−1点伤害。

·魔法攻击。小杨选择任意一个质数x(x不能超过怪物当前血量),对怪物造成x点伤害。由于小杨并不擅长魔法,他只能使用至多一次魔法攻击。

小杨想知道自己能否击败怪物,如果能,小杨想知道自己最少需要多少次攻击。


输入格式

第一行包含一个正整数t,代表测试用例组数。

接下来是t组测试用例。对于每组测试用例,第一行包含一个正整数h,代表怪物血量。

输出格式

对于每组测试用例,如果小杨能够击败怪物,输出一个整数,代表小杨需要的最少攻击次数,如果不能击败怪物,输出 -1。


输入样例

3
6
188
9999

输出样例

2
4
-1


对于第一组测试用例,一种可能的最优方案为,小杨先对怪物使用魔法攻击,选择质数 5 造成 5 点伤害,之后对怪物使用第 1 次物理攻击,造成21−1=1 点伤害,怪物血量恰好为 0,小杨成功击败怪物。

对于全部数据,保证有1≤t≤10,1≤h≤105。

更新时间:2025-02-20 13:41:08 |
【知识点】 CCF—GESP Python五级

相似题推荐

单选题

唯一分解定理描述的内容是()。

A.

任何正整数都可以表示为两个素数的和。

B.

任何大于1的合数都可以唯一分解为有限个质数的乘积。

C.

两个正整数的最大公约数总是等于它们的最小公倍数除以它们的乘积。

D.

所有素数都是奇数。

2026-07-18
判断题

二分查找仅适用于有序数据。若输入数据无序,当仅进行一次查找时,为了使用二分而排序通常不划算。()

A.正确 B.错误
2026-07-18
判断题

使用贪心算法解决问题时,通过对每一步求局部最优解,最终一定能找到全局最优解。()

A.正确 B.错误
2026-07-18
判断题

以下 fib 函数计算第 n 项斐波那契数( fib(0)=0 , fib(1)=1 ),其时间复杂度为 O(n)。()

def fib(n) :
    if n <= 1 :
        return n
    return fib(n - 1) + fib(n - 2)
A.正确 B.错误
2026-07-18
判断题

通过在数组的第一个、最中间和最后一个这3个数据中选择中间值作为枢轴(比较基准),快速排序算法可降低落入最坏情况的概率。()

A.正确 B.错误
2026-07-18
公众号
客服 反馈
顶部