小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 和 ,求
即 个 相乘的值,例如 即为 个 相乘,结果为
“简单!”小文心想,同时很快就写出了一份程序,可是测试时却出现了错误。
小文很快意识到,她的程序里的变量都是
在大多数机器上, 类型能表示的最大数为 ,因此只要计算结果超过这个数,她的程序就会出现错误。
由于小文刚刚学会编程,她担心使用
因此她希望你在 的值超过 时,输出一个 进行警示,否则就输出正确的
然而小文还是不知道怎么实现这份程序,因此她想请你帮忙。
输入格式
输入共一行,两个正整数 。
输出格式
输出共一行,如果 的值不超过 ,则输出 的值,否则输出 。
数据范围
对于 的数据,保证 。
对于 的数据,保证 。
对于 的数据,保证 ,。
对于 的数据,保证 。
输入样例1:
10 9
输出样例1:
1000000000
输入样例2:
23333 66666
输出样例2:
‐1
#include<iostream>
using namespace std;
const int N = 1e9;
int main(){
int a, b;
cin >> a >> b;
long long res = 1;
if(a == 1) cout << 1 << endl;
else{
for(int i = 0; i < b; i++){
res *= a;
if(res > N) {
res = -1;
break;
}
}
cout << res << endl;
}
return 0;
}