示例#1
0
文件: maths.py 项目: tweek3/modeuler
def divisors(num: int) -> Iterable[int]:
    """
    >>> sorted(divisors(24))
    [1, 2, 3, 4, 6, 8, 12]
    """
    yield 1
    for i in filter(not_(num % __), range(2, sqrt_ceil(num))):
        yield i
        d = num // i
        if d != i:
            yield d
示例#2
0
def distinct(it: It[A], trs: Fn[[A], bool]=lambda *a: a, on=None)-> It[A]:
	"""
	>>> list(distinct(distinct([1,1,1,2,2,3,4,4,4]))) == list(distinct([1,1,1,2,2,3,4,4,4]))
	True
	>>> list(distinct([1,1,1,2,2,3,4,4,4]))
	[1, 2, 3, 4]
	>>> list(distinct([]))
	[]
	"""
	if on is None:
		on = set()
	for i in filter(not_(contains(on, __)), it):
		yield i
		on.update(trs(i))