6.6.2.7 Operations on Integer Values

Scheme Procedure: odd? n
C Function: scm_odd_p (n)

Return #t if n is an odd number, #f otherwise.

Scheme Procedure: even? n
C Function: scm_even_p (n)

Return #t if n is an even number, #f otherwise.

Scheme Procedure: quotient n d
Scheme Procedure: remainder n d
C Function: scm_quotient (n, d)
C Function: scm_remainder (n, d)

Return the quotient or remainder from n divided by d. The quotient is rounded towards zero, and the remainder will have the same sign as n. In all cases quotient and remainder satisfy n = q*d + r.

(remainder 13 4) ⇒ 1
(remainder -13 4) ⇒ -1

See also truncate-quotient, truncate-remainder and related operations in Arithmetic Functions.

Scheme Procedure: modulo n d
C Function: scm_modulo (n, d)

Return the remainder from n divided by d, with the same sign as d.

(modulo 13 4) ⇒ 1
(modulo -13 4) ⇒ 3
(modulo 13 -4) ⇒ -3
(modulo -13 -4) ⇒ -1

See also floor-quotient, floor-remainder and related operations in Arithmetic Functions.

Scheme Procedure: gcd x…
C Function: scm_gcd (x, y)

Return the greatest common divisor of all arguments. If called without arguments, 0 is returned.

The C function scm_gcd always takes two arguments, while the Scheme function can take an arbitrary number.

Scheme Procedure: lcm x…
C Function: scm_lcm (x, y)

Return the least common multiple of the arguments. If called without arguments, 1 is returned.

The C function scm_lcm always takes two arguments, while the Scheme function can take an arbitrary number.

Scheme Procedure: modulo-expt n k m
C Function: scm_modulo_expt (n, k, m)

Return n raised to the integer exponent k, modulo m.

(modulo-expt 2 3 5)
   ⇒ 3
Scheme Procedure: exact-integer-sqrt k
C Function: void scm_exact_integer_sqrt (SCM k, SCM *s, SCM *r)

Return two exact non-negative integers s and r such that k = s^2 + r and s^2 <= k < (s + 1)^2. An error is raised if k is not an exact non-negative integer.

(exact-integer-sqrt 10) ⇒ 3 and 1