NAME
    gcdrem - result of removing factors of integer common to a specified integer

SYNOPSIS
    gcdrem(x, y)

TYPES
    x		integer
    y		integer

    return	non-negative integer

DESCRIPTION

    If x and y are not zero, gcdrem(x, y) returns the greatest integer
    divisor d of x relatively prime to y, i.e. for which gcd(d,y) = 1.
    In particular, gcdrem(x,y) = abs(x) if x and y are relatively
    prime.

    For all x, gcdrem(x, 0) = 1.

    For all nonzero y, gcdrem(0, y) = 0.

PROPERTIES
    gcdrem(x,y) = gcd(abs(x), abs(y)).

    If x is not zero, gcdrem(x,y) = gcdrem(x, gcd(x,y)) = gcdrem(x, y % x).

    For fixed nonzero x, gcdrem(x,y) is periodic with period abs(x).

    gcdrem(x,y) = 1 if and only if every prime divisor of x
	is a divisor of y.

    If x is not zero, gcdrem(x,y) == abs(x) if and only if gcd(x,y) = 1.

    If y is not zero and p_1, p_2, ..., p_k are the prime divisors of y,

	gcdrem(x,y) = frem(...(frem(frem(x,p_1),p_2)...,p_k)

EXAMPLE
    > print gcdrem(6,15), gcdrem(15,6), gcdrem(72,6), gcdrem(6,72)
    2 5 1 1

    > print gcdrem(630,6), gcdrem(6,630)
    35 1

LIMITS
    none

LIBRARY
    NUMBER *qgcdrem(NUMBER *x, NUMBER *y)

SEE ALSO
    gcd, frem, isrel
