#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define repl(i,a,b) for(int i=(int)(a);i<(int)(b);i++) #define rep(i,n) repl(i,0,n) #define mp(a,b) make_pair(a,b) #define pb(a) push_back(a) #define all(x) (x).begin(),(x).end() #define dbg(x) cout<<#x"="< primes; // combinarion nCr mod M long comb(long n, long r, long mod){ if(r>n-r) r=n-r; vector a(n); rep(i,r) a[i]=n-i; for(int p : primes){ if(p>r) break; for(long q=p; q<=r; q*=p){ for(int i=n%q, j=0; j arr(SZ+2, true); arr[0]=arr[1]=false; for(int i=4;i<=SZ;i+=2) arr[i]=false; primes.pb(2); for(int i=3; i<=SZ/2; i+=2){ if(arr[i]){ primes.pb(i); for(int j=i*2; j<=SZ; j+=i) arr[j]=false; } } int tc; scanf("%d\n", &tc); rep(loops, tc){ vector vec; char c; while(scanf("%c", &c)){ if(c=='\n') break; vec.pb(c-'0'); } int n =vec.size(); int res = 0; bool isZero = (vec[0]==0); rep(i,n){ if(vec[i]!=0) isZero=false; res += vec[i] * comb(n-1, i, 9); res %= 9; } if(!isZero && res==0) res=9; printf("%d\n", res); } return 0; }