
int c[100] = {[10]=1, [12]=1, [13]=1, [14]=1, [15]=1, [16]=1, [17]=1, [18]=1, [19]=1, [20]=1, [21]=1, [23]=1, [24]=1, [25]=1, [26]=1, [27]=1, [28]=1, [29]=1, [30]=1, [31]=1, [32]=1, [34]=1, [35]=1, [36]=1, [37]=1, [38]=1, [39]=1, [40]=1, [41]=1, [42]=1, [43]=1, [45]=1, [46]=1, [47]=1, [48]=1, [49]=1, [50]=1, [51]=1, [52]=1, [53]=1, [54]=1, [56]=1, [57]=1, [58]=1, [59]=1, [60]=1, [61]=1, [62]=1, [63]=1, [64]=1, [65]=1, [67]=1, [68]=1, [69]=1, [70]=1, [71]=1, [72]=1, [73]=1, [74]=1, [75]=1, [76]=1, [78]=1, [79]=1, [80]=1, [81]=1, [82]=1, [83]=1, [84]=1, [85]=1, [86]=1, [87]=1, [89]=1, [90]=1, [91]=1, [92]=1, [93]=1, [94]=1, [95]=1, [96]=1, [97]=1, [98]=1};
int c2[100] = { 0 };

#include <stdlib.h>
#include <assert.h>

void puts2( char* s )
{
	int n = strtoul( s , 0 , 10 );
    
    
	c2[n] = 1 ;
}


f(n){char d[11],i=0,r;for(;i++^10;d[i-1]=d[r=rand()%i],d[r]=47+i);*d^48?d[n]=0,puts2(d):f(n);}

int main(void) 
{
    srand( time( 0 ) );
    
	for( int i = 1 ; i < 10000 ; i++ )
	{
		f( 2 );
	}
	
	for( int i = 0 ; i < 100 ; i++ )
	{
		assert( c[i] == c2[i] );
	}
	
	return 0;
}
