题解 | 小苯的数字权值

dp= [False]*200100

n = 200100

for i in range(2,int((n+2)**0.5)):

    if dp[i] == False and i*i < n:

        for j in range(i+i,n, i):

            if dp[j] == False:

                dp[j] = i

t = int(input())

for k in range(t):

    wt = []

    mul = 1

    s = int(input())

    while dp[s] != False:

        wt.append(dp[s])

        s = s // dp[s]

    wt.append(s)

    wt_set = list(set(wt))

    if len(wt_set) == 1:

        print(2*wt.count(wt_set[0]))

    else:

        for item in wt_set:

            mul *= wt.count(item)+1

print(mul)

全部评论

相关推荐

给个offer灞:校友 是不是金die
点赞 评论 收藏
分享
10-09 16:12
门头沟学院 Java
帅宇殿下:佬,简历写的什么
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务