显示代码纯文本
#include<cstdio>
long long num[50000];//压七位,10000000进制
int ans[50005];int cnt=0;
int len=0;
void mult(int x){
for(int i=0;i<len;++i){
num[i]*=x;
}
for(int i=0;i<len;++i){
if(num[i]>=10000000){
num[i+1]+=num[i]/10000000;
num[i]%=10000000;
if(i==len-1)len++;
}
}
while(num[len-1]>=10000000){
num[len]+=num[len-1]/10000000;
num[len-1]%=10000000;
len++;
}
}
void output(){
int cnt=1,tmp=num[len-1];
for(int i=0;i<len-1;++i){
int tmp=num[i],cntnow=0;
while(tmp!=0){
ans[cnt++]=tmp%10;
tmp/=10;
cntnow++;
}
if(cntnow<7){
for(;cntnow<7;++cntnow){
ans[cnt++]=0;
}
}
}
while(tmp!=0){
ans[cnt++]=tmp%10;
tmp/=10;
}
for(int i=cnt-1;i>=1;--i){
putchar(ans[i]+'0');
if((cnt-i)%70==0)putchar('\n');
}
}
int main(){
freopen("cruel1.in","r",stdin);
freopen("cruel1.out","w",stdout);
int n,p;
scanf("%d %d",&n,&p);
int tmp=n;
while(n!=0){
num[len++]=n%10000000;
n/=10000000;
}
for(int i=1;i<p;++i){
mult(tmp);
}
output();
fclose(stdin);fclose(stdout);
return 0;
}