def md(n): a = 1 for d in str(n): a*=int(d) return a def mdr(n): while n>9: n = md(n) return n def p1(n): a = 0 i = 1 while i<=n: a += 1 i=i*10+1 return a from random import randint def test(n,k): p = [0]*10 for i in range(k): l = randint(1,n+1) p[mdr(l)]+=1 for d in range(10): p[d]= p[d]*n/k print(p) def calc(x): a=[0]*10 p = 0 ans = [] for i in range(1,x[-1][-1]+1): a[mdr(i)]+=1 if i==x[p][1]: ans.append((x[p][0],a[:])) p+=1 return ans t = int(input()) x = sorted(enumerate(map(int,input().split())),key=lambda k:k[1]) ans=sorted(calc(x)) for a in ans: print(*a[1])
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | def md(n): a = 1 for d in str(n): a*=int(d) return a def mdr(n): while n>9: n = md(n) return n def p1(n): a = 0 i = 1 while i<=n: a += 1 i=i*10+1 return a from random import randint def test(n,k): p = [0]*10 for i in range(k): l = randint(1,n+1) p[mdr(l)]+=1 for d in range(10): p[d]= p[d]*n/k print(p) def calc(x): a=[0]*10 p = 0 ans = [] for i in range(1,x[-1][-1]+1): a[mdr(i)]+=1 if i==x[p][1]: ans.append((x[p][0],a[:])) p+=1 return ans t = int(input()) x = sorted(enumerate(map(int,input().split())),key=lambda k:k[1]) ans=sorted(calc(x)) for a in ans: print(*a[1]) |