1を2倍していってそれに4桁づつ単位をつけて出力するつまり2^nを計算して4桁ずつ出力するプログラムを作りたいんですが

include<stdio.h>
main()
{
int n,i,t=0;
int a[50];
a[0]=1;
n=かける回数;

scanf("%d",&n)
for(i=0;i<50;i++){
for(t=0;t<50;t++){
a[t]=a[t]*2;
}
for(t=0;t<50;t++){
while(a[t]>9999){
a[t]=a[t]-10000;
a[t+1]++;
        }
}
}
if(a[49]>0) printf("%d 単位49",a[49]);
          ・
          ・
          ・
if(a[2]>0) printf("%d 億",a[2]);
if(a[1]>0) printf("%d 万",a[1]);
if(a[0]>0) printf("%d ",a[0]);
}
でいいんですかね、なんか無駄が多い気がするんですがこれ以外思いつかなくて
というか一気に2^nを計算するとオーバーフローするので困ってこんなのになりました