#include #include int values[] = { 1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880 }; int main(){ int input ; scanf("%d",&input); int capacity=2; int length=0; char *buffer=(char*) malloc(sizeof(char)*capacity); while(input>0){ for(int i=0;i<10;i++){ if(i==9||values[i+1]<=input){ continue; } input -= values[i]; if(length>=capacity){ capacity*=2; buffer=(char*) realloc(buffer,sizeof(char)*capacity); } buffer[length++]=i+'0'; buffer[length]=0; break; } } for(int i=length;i>=0;i--){ putchar(buffer[i]); } putchar('\n'); free(buffer); return 0; }