#L0801. 幂次计算

幂次计算

题目描述

小明在学习编程时遇到了一个有趣的任务:给定两个正整数 aa 和 bb,计算 aba^b 的值。

aba^b 表示 bb 个 aa 相乘,例如 23=2×2×2=82^3 = 2 \times 2 \times 2 = 8。

小明很快写出了程序,但他发现自己使用的变量只能存储有限范围的整数。在大多数机器上,整型能表示的最大数为 231−12^{31} - 1,一旦结果超过这个范围就会出错。

为了安全起见,小明希望你在 aba^b 的值超过 10910^9 时输出 −1-1 作为警示,否则输出 aba^b 的准确值。

请你帮小明完成这个程序。

输入格式

输入共一行,两个正整数 aa 和 bb。

输出格式

输出共一行,如果 aba^b 的值不超过 10910^9,则输出 aba^b 的值,否则输出 −1-1。

样例

10 9
1000000000
23333 66666
-1

提示

对于 10%10\% 的数据,保证 b=1b = 1。

对于 30%30\% 的数据,保证 b≤2b \leq 2。

对于 60%60\% 的数据,保证 b≤30b \leq 30,ab≤1018a^b \leq {10}^{18}。

对于 100%100\% 的数据,保证 1≤a,b≤1091 \leq a, b \leq {10}^9。

难度 入门
通过率 —
尝试 0
通过 0
ID
1529
类型
传统题
Time Limit
500ms
Memory Limit
128MiB
上传者