#include #include #include #define N 2000000 #define S 123454321 short a[N]; unsigned top, stop = 1; void print(void) { unsigned i; for(i = top - 1; i != -1; i--) printf("%u",a[i]); printf("\n"); } void check(void) { unsigned i, n = 0, p = 1; for(i = top - 9; i < top; i++) { n += a[i] * p; p *= 10; } if(n == S) stop = 0; printf("%u\n",n); } void mulby2(void) { unsigned i, p = 0, t = 0; for(i = 0; i < top; i++) { t = a[i] * 2 ; a[i] = (t % 10) + p; p = t / 10; } if(p) { a[top++] = p; check(); } if(top >= N) exit(0); } int main(int argc, char **argv) { unsigned i, n = 26; top = 0; for(i = 0; i < N; i++) a[i] = 0; i = pow(2,n); while(i > 0) { a[top++] = i % 10; i /= 10; } i = n; while(stop) { mulby2(); i++; } printf("i = %u\n",i); return 0; }