这里不能只用使用pow()函数,因为如果给的两个数很大的话,其结果根本是无法存储的,这里有一个技巧,求a^b的最后三位,只需将每次与a相乘的结果中保留最后三位即每次都对1000取余就行了,与更高位的数字是没有关系的。
#include <iostream>
#include <math.h>
#include <string>
using namespace std;
bool judge(int n)
{
int i;
int temp = (int)sqrt(n)+1;
for (i = 2;i <= temp;i++)
{
if (n % i == 0) return false;
}
return true;
}
int main()
{
int a,b;
while (cin >> a >> b)
{
if (a == 0 && b == 0) break;
int sum = a;
for (int i = 0; i < b-1; i++)
{
sum *= a;
sum = sum % 1000;
}
cout << sum << endl;
}
}