示例#1
0
"""
http://projecteuler.net/index.php?section=problems&id=61
"""
import sys
from lib import euler


def is_cyclic(a, b):
  return str(a)[-2:] == str(b)[:2]

generators = (
  euler.triangular_numbers(),
  euler.square_numbers(),
  euler.pentagonal_numbers(),
  euler.hexagonal_numbers(),
  euler.heptagonal_numbers(),
  euler.octagonal_numbers()
)

# we're told in the Q we only need to consider 4 digit numbers

numbers = []
for g in generators:

  nums = []
  for number in g:
    if len(str(number)) < 4: continue
    if len(str(number)) > 4: break
    nums += [number]
  numbers += [nums]
示例#2
0
""" Find the next triangular number which is pentagonal and hexagonal, after
40755 (T_285) """
from lib import euler

# very easy with a few helpers
for t in euler.triangular_numbers(286):
  if euler.is_pentagonal(t) and euler.is_hexagonal(t):
    print t
    break