#12286. 逆波兰咒语与质数魔力
逆波兰咒语与质数魔力
✅ P10451-B:【魔法试炼】逆波兰咒语与质数魔力
🧙♂️【背景故事】
在遥远的数域王国,流传着一种古老的魔法语言,被称为——逆波兰文(Postfix Spells)。据说,只有真正聪慧且心思缜密的魔法师,才能解读这串咒文,并召唤出真正的魔力之数。
如今,年轻的你来到王国的【试炼之塔】,面前是一块古老石碑,上面刻着一段神秘的逆波兰咒语,如:
7 3 + 5 *
你的任务是:
- 计算出这段咒语的最终魔力值;
- 判断这个结果是否是一个“魔力质数”——即一个只能被 1 和自身整除的正整数。
若你给出的魔力值为质数,试炼之门将应声而开,通往更深层的魔法世界;否则,咒语失败,你必须重新审视这段神秘的语言。
📥【输入格式】
一行,一个合法的后缀表达式,由整数和四则运算符 + - * /
组成,空格分隔。
- 输入保证合法,计算过程不会出现除以 0。
- 所有计算均为整数运算(即除法向下取整)。
- 整数可能为负数或多位数。
📤【输出格式】
输出两行:
- 第 1 行输出表达式计算后的结果(一个整数);
- 第 2 行若该数为质数,输出
Yes
,否则输出No
。
💡【输入样例1】
3 4 + 2 *
💡【输出样例1】
14
No
💡【输入样例2】
10 3 * 2 + 1 -
💡【输出样例2】
31
Yes
🧠【样例解释】
- 样例1:,,14 不是质数;
- 样例2:,是一个质数。
🧰【提示】
你可以使用栈来模拟表达式求值的过程:
- 遇到数字 → 压栈;
- 遇到操作符 → 弹出两个数字,运算后压回栈中;
- 最终栈中留下的一个值即为计算结果。
运算完成后,再判断该结果是否为大于 1 且仅有两个因数的整数,即为“质数”。