Number of divisors

question = https://hack.codingblocks.com/contests/c/452/815
answer = https://ide.codingblocks.com/#/s/20413

Your code will give answer 2 even if it should give 1
like the test case
2
1 1
You can look up on this code
https://ide.codingblocks.com/#/s/20740

in this code did you use the sieve and then checked for the divisors

Yess and storing the count of each primes and then calculate the final answer

So, Here is my solution in python using dictionary.
It passed all the test cases.

:bulb: Number Of Divisors
#Author- Admin_A
def factors(n):
d=dict()
for i in range(2,int(n**0.5)+1):
if (n%i==0):
cnt=0
while(n%i==0):
cnt+=1
n=int(n/i)
d.update({i:cnt})
if (n!=1):
d.update({n:1})

    return d

for _ in range (int(input())):
n=int(input())
a=list(map(int,input().split()))
di=dict()
for i in a:
for k,v in factors(i).items():
#print(k,v)
if k in di.keys():
di[k]=di[k]+v
else:
di[k]=v
#print(di)
cnt=1
for k,v in di.items():
cnt*=v+1
print(cnt)