Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
← Back to Loops & PERFORM
Loops & PERFORM | Intermediate | COBOL

Factorial Calculation

Problem Description

Calculate factorial of a number (n! = 1*2*3*...*n).

Expected Output

Input: 5 -> Output: FACTORIAL = 120

Hints

Use loop multiplying result by each number.

Solution

IDENTIFICATION DIVISION. PROGRAM-ID. FACTORIAL. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-NUM PIC 9(2). 01 WS-COUNTER PIC 9(2). 01 WS-FACTORIAL PIC 9(15) VALUE 1. PROCEDURE DIVISION. DISPLAY "ENTER A NUMBER: ". ACCEPT WS-NUM. PERFORM VARYING WS-COUNTER FROM 1 BY 1 UNTIL WS-COUNTER > WS-NUM MULTIPLY WS-COUNTER BY WS-FACTORIAL END-PERFORM. DISPLAY "FACTORIAL = " WS-FACTORIAL. STOP RUN.

Explanation:

Factorial grows quickly, use large PIC for result.