خوارزمية إيجاد جميع قواسم العدد
📁 وظيفة, قائمة, بايثون, مثال
مرحبًا! أثناء حل المشكلة، اضطررت للبحث عن خوارزمية لإيجاد جميع قواسم العدد. أي أنه بالنسبة للعدد 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