#include #include int values[] = { 1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880 }; int main(){ long long input; scanf("%lld",&input); int capacity=2; long long 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-1;i>=0;i--){ printf("%c",buffer[i]); } printf("\n"); return 0; }