home *** CD-ROM | disk | FTP | other *** search
- /* REXX */
-
- /* This program lets the user enter a value. It is done in a sub- */
- /* routine with global variable space that modifies the variables */
- /* of the calling program part. Then another subroutine checks if */
- /* the value can be divided by any other number. */
-
- CALL ENTERIT
-
- IF HAS_DIVIDERS(number)=0 THEN DO
- SAY number||" is a prime number!"
- END
- ELSE DO
- SAY number||" is not a prime number!"
- END
-
- EXIT
-
- /* Below is a subroutine. It has access to the varibale pool of the */
- /* calling program. Of course, this could be done in a more elegant */
- /* way. */
- ENTERIT:
- SAY "Please enter a number (up to 1000)"
- PULL number
- RETURN
-
-
- /* Below is a function. The word PROCEDURE was added, to give it a */
- /* local variable pool. Exchange of data with the calling program is */
- /* done through argument passing and result return mechanism. */
- HAS_DIVIDERS: PROCEDURE
- /* Pick up first (and only) argument */
- z= ARG(1)
- result= 0
-
- DO i=2 TO z-1
- IF (z//i)=0 THEN DO
- /* leave loop if i is a divider of z */
- result= 1
- LEAVE i
- END
- END
-
- RETURN result
-
-