#include <stdio.h>

unsigned concatenate(unsigned x, unsigned y) {
    unsigned pow = 10;
    while (y >= pow) pow *= 10;
    return x * pow + y;        
}

void unconcatenate(unsigned *first, unsigned *second, unsigned concatenated, unsigned limit) {
    unsigned pow = 10;
    while (pow < limit) pow *= 10;
    *first = concatenated / pow;
    *second = concatenated % pow;
}

int main(void) {
    unsigned x, y, foo = concatenate(1234, 56);

    unconcatenate(&x, &y, foo, 100);
    printf("%u unconcatenaded to %u and %u.\n", foo, x, y);
	return 0;
}
