30行目をwhile(1){
41行目を//for(i=N;i--;)printf("%04d",a[i]);
に訂正。