mercredi 10 août 2011

List prime factors and decompose a num into prime factors

def prime_factors(n):
  """ List all prime numbers up to n """
  prims = []
  for i in range (2, n):
    is_prim = True
    for p in prims:
      if i % p == 0:
        is_prim = False
        break
    if is_prim:
      prims.append(i)

  return prims

def decompose_prime_factors(n):
  """ Decompose a number into prime numbers """
  prims = prime_factors(n)
  powers = [0 for i in range(len(prims))]
  while n > 1:
    for i in range(len(prims)):
      p = prims[i]
      if n % p == 0:
        n /= p
        powers[i] += 1
        break

  return [prims, powers]



if __name__ == '__main__':
  print prime_factors(100)
  print decompose_prime_factors(100)

Aucun commentaire:

Enregistrer un commentaire