예제 #1
0
파일: 12.py 프로젝트: bclarkx2/euler
def num_factors(num):
    return len(factor(num))
예제 #2
0
  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))
예제 #3
0
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])
예제 #4
0
'''
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)))
예제 #5
0
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])
예제 #7
0
def distinct_prime_factors(n):
  return collections.Counter(common.factor(n)).keys()
예제 #8
0
def largest_prime_factor(n):
    return common.factor(n)[-1]
예제 #9
0
'''
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)))
예제 #10
0
def distinct_prime_factors(n):
    return collections.Counter(common.factor(n)).keys()