Avatar ·

خوارزمية إيجاد جميع قواسم العدد

📁 وظيفة, قائمة, بايثون, مثال

مرحبًا! أثناء حل المشكلة، اضطررت للبحث عن خوارزمية لإيجاد جميع قواسم العدد. أي أنه بالنسبة للعدد 8 يجب إخراج [1,2,4,8] وليس [2,2,2] - قائمة القواسم. لقد أعدت كتابة هذه الخوارزمية من جديد، وأطلب من "الرفاق الأكبر" أن يقترحوا كيفية تحسينها. إذا كان لديكم وقت ))

def divisorss(n):    from collections import Counter    ls = get_ls(n)                  # for n=1568 -> ls = [2, 2, 2, 2, 2, 7, 7]    pairs = dict(Counter(ls))       #  {2: 5, 7: 2}    from itertools import product, starmap    from operator import mul    from functools import reduce    #  قائمة جميع القواسم المختلفة للعدد    bases = [b