示例#1
0
def solve():
  """
  http://en.wikipedia.org/wiki/Partition_(number_theory)
  """
  from prime import divisors_sigma
  p = [1]
  for n in range(1,N+1):
    p.append( 1./n*sum(divisors_sigma(n-k)*p[k] for k in range(0,n)) )
  return int(p[-1]-1)
示例#2
0
def slow():
  """
  http://en.wikipedia.org/wiki/Partition_(number_theory)
  """
  from prime import divisors_sigma
  p = [1]
  n = 1
  while True:
    p.append( 1./n*sum(divisors_sigma(n-k)*p[k] for k in range(0,n)) )
    #print n, p[-1]
    if n > 1 and p[-1]%N == 0:
      break
    n += 1
  return n, int(p[-1])