Write a function that calculates the factorial of a given number N and returns the result.
Program in C
C
#include <stdio.h>
int factorial(int N) {
    int result = 1;
    // Calculate factorial
    for (int i = 1; i <= N; i++) {
        result =result* i;
    }
    return result;
}
int main() {
    int N;
    // Getting input from the user
    printf("Enter a number: ");
    scanf("%d", &N);
    // Calculate factorial and display the result
    int fact = factorial(N);
    printf("The factorial of %d is %d\n", N, fact);
    return 0;
}Explanation:
- The factorial function is defined, which takes an integer N as a parameter and returns an integer result. This function calculates the factorial of the given number N.
- Inside the factorial function, an integer variable result is initialized to 1. This variable will store the factorial result.
- A for loop is used to calculate the factorial. The loop starts from 1 and iterates up to N. In each iteration, the value of i is multiplied with the current value of result and the updated value is assigned back to result.
- After the loop finishes, the calculated factorial value is stored in result and returned from the function.
- In the main function, an integer variable N is declared to store the user input.
- The program prompts the user to enter a number using printf.
- The value entered by the user is read and stored in N using scanf.
- The factorial function is called with N as the argument, and the returned value is stored in an integer variable fact.
- Finally, the program displays the calculated factorial by printing the message “The factorial of %d is %d\n” using printf. The placeholders %d are replaced with the values of N and fact, respectively.
- The program execution ends, and the program terminates.
C Output
Enter a number: 5
The factorial of 5 is 120Program in Java
Java
import java.util.Scanner;
public class Factorial {
    public static int factorial(int N) {
        int result = 1;
        // Calculate factorial
        for (int i = 1; i <= N; i++) {
            result *= i;
        }
        return result;
    }
    public static void main(String[] args) {
        int N;
        // Getting input from the user
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a number: ");
        N = scanner.nextInt();
        // Calculate factorial and display the result
        int fact = factorial(N);
        System.out.printf("The factorial of %d is %d\n", N, fact);
    }
}Explanation:
- The Factorial class is defined, which contains two methods: factorial and main.
- The factorial method is a static method that takes an integer N as a parameter and returns an integer result. This method calculates the factorial of the given number N.
- Inside the factorial method, an integer variable result is initialized to 1. This variable will store the factorial result.
- A for loop is used to calculate the factorial. The loop starts from 1 and iterates up to N. In each iteration, the value of i is multiplied with the current value of result using the *= operator, and the updated value is assigned back to result.
- After the loop finishes, the calculated factorial value is stored in result and returned from the method.
- The main method is also static and serves as the entry point of the program.
- Inside the main method, an integer variable N is declared to store the user input.
- A Scanner object named scanner is created to read input from the user.
- The program prompts the user to enter a number using System.out.print(“Enter a number: “).
- The value entered by the user is read and stored in N using scanner.nextInt().
- The factorial method is called with N as the argument, and the returned value is stored in an integer variable fact.
- Finally, the program displays the calculated factorial by printing the message “The factorial of %d is %d\n” using System.out.printf(). The placeholders %d are replaced with the values of N and fact, respectively.
- The program execution ends, and the program terminates.
Java Output
Enter a number: 4
The factorial of 4 is 24