#include<bits/stdc++.h>
using namespace std;
const int N=25;
long long c[N][N];
int cnt[N];
int main(){
int T; scanf("%d",&T);
c[0][0]=1;
for(int i=1;i<21;++i){
c[i][0]=1;
for(int j=1;j<=i;++j) c[i][j]=c[i-1][j]+c[i-1][j-1];
}
while(T--){
memset(cnt,0,sizeof(cnt));
long long x;
scanf("%lld",&x);
int id=2;
while(x) ++cnt[x%id],x/=id,++id;
--id;
int k=id;
long long ans=1,i=0,ans1=1;
while(id>0){
--id;
++i;
if(id==0) --i;
ans*=c[i][cnt[id]];
i-=cnt[id];
}
id=k-1;
--cnt[0];
if(cnt[id]==0){
i=0;
while(id>0){
--id;
++i;
if(id==0) --i;
ans1*=c[i][cnt[id]];
i-=cnt[id];
}
}
else ans1=0;
ans-=ans1;
--ans;
printf("%lld\n",ans);
}
return 0;
}
682. Baseball Game | 496. Next Greater Element I |
232. Implement Queue using Stacks | 844. Backspace String Compare |
20. Valid Parentheses | 746. Min Cost Climbing Stairs |
392. Is Subsequence | 70. Climbing Stairs |
53. Maximum Subarray | 1527A. And Then There Were K |
1689. Partitioning Into Minimum Number Of Deci-Binary Numbers | 318. Maximum Product of Word Lengths |
448. Find All Numbers Disappeared in an Array | 1155. Number of Dice Rolls With Target Sum |
415. Add Strings | 22. Generate Parentheses |
13. Roman to Integer | 2. Add Two Numbers |
515. Find Largest Value in Each Tree Row | 345. Reverse Vowels of a String |
628. Maximum Product of Three Numbers | 1526A - Mean Inequality |
1526B - I Hate 1111 | 1881. Maximum Value after Insertion |
237. Delete Node in a Linked List | 27. Remove Element |
39. Combination Sum | 378. Kth Smallest Element in a Sorted Matrix |
162. Find Peak Element | 1529A - Eshag Loves Big Arrays |