codility CountNonDivisible

来源:互联网 发布:ubuntu 安装sqlserver 编辑:程序博客网 时间:2024/05/29 14:45

Question:codility Lesson11 CountNonDivisible

def solution(A):    maxA = max(A)    lenA = len(A)    cnt = {}    for ele in A:        if ele not in cnt:            cnt[ele] = 1        else:            cnt[ele] += 1    divisors = {}    for ele in A:        divisors[ele] = set([1,ele])    div = 2    while div * div <= maxA:        multiple = div        while multiple <= maxA:            if multiple in divisors and not div in divisors[multiple]:                divisors[multiple].add(div)                divisors[multiple].add(multiple // div)            multiple += div        div += 1    #print(divisors)    res = []    for ele in A:        res.append(lenA - sum([cnt.get(div,0) for div in divisors[ele]]))    return res
原创粉丝点击