def num_factors(num): return len(factor(num))
return len([None for i,p in enumerate(factors) if common.product(factors[:i]) < cap and common.product(factors[i:]) < cap]) def concise_factors(factors): result = [] for p in common.primes(): assert p <= factors[0] result.append(0) while factors and factors[0] == p: result[-1] += 1 factors.pop(0) if not factors: return tuple(result) print 360 print common.factor(360) print concise_factors(common.factor(360)) print special_factors(concise_factors(common.factor(360)), 100) def f(k): print 'searching for value <= %d with most factors...' % k start = (1,) best = (factors(start), -value(start), start) #frontier = Queue.PriorityQueue() frontier = Queue.Queue() frontier.put((value(start), start)) seen = set() seen.add(start) while not frontier.empty(): _, current = frontier.get() #print 'considering: %d (%d factors): ' % (value(current), factors(current))
def special_factors(n, cap): v = value(n) factors = common.factor(v) return len([None for i,p in enumerate(factors) if common.product(factors[:i]) < cap and common.product(factors[i:]) < cap])
''' The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ? ''' import common def largest_prime_factor(n): return common.factor(n)[-1] common.assertEquals(29, largest_prime_factor(13195)) common.submit(largest_prime_factor(600851475143), expected=6857) # command-line utility import sys for arg in sys.argv[1:]: print '%d = %s' % ( int(arg), common.factor(int(arg)))
def largest_prime_factor(n): return common.factor(n)[-1]
def test_factor(self): self.assertEquals(factor(15), [3, 5]) self.assertEquals(factor(29), [29])
def distinct_prime_factors(n): return collections.Counter(common.factor(n)).keys()
''' The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ? ''' import common def largest_prime_factor(n): return common.factor(n)[-1] common.assertEquals(29, largest_prime_factor(13195)) common.submit(largest_prime_factor(600851475143), expected=6857) # command-line utility import sys for arg in sys.argv[1:]: print '%d = %s' % (int(arg), common.factor(int(arg)))