#12286. 逆波兰咒语与质数魔力

逆波兰咒语与质数魔力

✅ P10451-B:【魔法试炼】逆波兰咒语与质数魔力


🧙‍♂️【背景故事】

在遥远的数域王国,流传着一种古老的魔法语言,被称为——​逆波兰文​(Postfix Spells)。据说,只有真正聪慧且心思缜密的魔法师,才能解读这串咒文,并召唤出真正的​魔力之数​。

如今,年轻的你来到王国的【试炼之塔】,面前是一块古老石碑,上面刻着一段神秘的逆波兰咒语,如:

7 3 + 5 *

你的任务是:

  1. 计算出这段咒语的​最终魔力值​;
  2. 判断这个结果是否是一个“​魔力质数​”——即一个只能被 1 和自身整除的正整数。

若你给出的魔力值为质数,试炼之门将应声而开,通往更深层的魔法世界;否则,咒语失败,你必须重新审视这段神秘的语言。


📥【输入格式】

一行,一个合法的​后缀表达式​,由整数四则运算符 + - * / 组成,空格分隔。

  • 输入保证合法,计算过程不会出现除以 0。
  • 所有计算均为​整数运算​(即除法向下取整)。
  • 整数可能为负数或多位数。

📤【输出格式】

输出两行:

  1. 第 1 行输出表达式计算后的结果(一个整数);
  2. 第 2 行若该数为质数,输出 Yes,否则输出 No

💡【输入样例1】

3 4 + 2 *

💡【输出样例1】

14  
No

💡【输入样例2】

10 3 * 2 + 1 -

💡【输出样例2】

31  
Yes

🧠【样例解释】

  • 样例1:3+4=73 + 4 = 77×2=147 \times 2 = 14,14 不是质数;
  • 样例2:10×3+21=3110 \times 3 + 2 - 1 = 31,是一个质数。

🧰【提示】

你可以使用来模拟表达式求值的过程:

  • 遇到数字 → 压栈;
  • 遇到操作符 → 弹出两个数字,运算后压回栈中;
  • 最终栈中留下的一个值即为计算结果。

运算完成后,再判断该结果是否为大于 1 且仅有两个因数的整数,即为“质数”。