Esempio n. 1
0
def isAmicable(n , m):
    """
    Returns true if given pair m and n are amicable

    n : int
        denotes positive integer
    m : int
        denotes positive integer
    return : bool
        returns true if given pair is amicable otherwise returns false

    """
    if(n!=int(n) or n<1 or m!=int(m) or m<1):
        raise ValueError(
            "n and m must be positive integer"
        )
    return (divisor_sum(n) == m + n) and (divisor_sum(m) == m+n)
Esempio n. 2
0
def test_divisor_sum2():
    """
    Tesing for a large number using brute force
    """
    num = 1000
    sum_divisors = 0
    for i in range(1,num+1):
        if(num % i == 0):
            sum_divisors += i
    assert divisor_sum(num) == sum_divisors
Esempio n. 3
0
def isPerfect(n):
    """
    Returns true if the given positive integer is perfect

    Parameters
    ----------
    n : int
        denotes positive integer
    return : bool
        returns true if number is perfect otherwise false

    """
    if (n != int(n) or n < 1):
        raise ValueError("n must be positve integer")
    return divisor_sum(n) == 2 * n
Esempio n. 4
0
def test_divisor_sum1():
    """
    Tesing for a small integer
    """
    assert divisor_sum(10) == 18