fork download
  1. from collections import defaultdict
  2.  
  3. def factorize(n):
  4. factors = defaultdict(int)
  5. while n % 2 == 0:
  6. factors[2] += 1
  7. n //= 2
  8. for i in range(3, int(n**0.5) + 1, 2):
  9. while n % i == 0:
  10. factors[i] += 1
  11. n //= i
  12. if n > 2:
  13. factors[n] += 1
  14. return factors
  15.  
  16. def max_divisible_elements(arr, k):
  17. prime_factors_count = defaultdict(int)
  18. for num in arr:
  19. factors = factorize(num)
  20. for factor, count in factors.items():
  21. prime_factors_count[factor] += count
  22.  
  23. max_divisible = 0
  24. for factor, count in prime_factors_count.items():
  25. max_divisible = max(max_divisible, count // k)
  26.  
  27. return max_divisible
  28.  
  29. # Example usage:
  30. arr = [1,2,3,4,5,6]
  31. k = 6
  32. print(max_divisible_elements(arr, k)) # Output: 3
Success #stdin #stdout 0.04s 9752KB
stdin
Standard input is empty
stdout
0