Skip to content
Programmingoneonone
Programmingoneonone
  • CS Subjects
    • Internet of Things (IoT)
    • Digital Communication
    • Human Values
    • Cybersecurity
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
  • Work with US
Programmingoneonone
Programmingoneonone

HackerRank Extra Long Factorials problem solution

YASH PAL, 31 July 202430 November 2025

In this HackerRank Extra Long Factorials problem, you have Given an integer value Calculate and print the factorial of a given integer.

HackerRank Extra Long Factorials problem solution

Hackerrank extra long factorials problem solution in Python.

def factorial(x):
    if x == 0: return 0
    answer = 1
    while x > 0:
        answer *= x
        x = x - 1
    return answer

if __name__ == '__main__':
    num = int(input())
    print(factorial(num))

Extra long factorials solution in Java.

import java.io.*;
import java.util.*;
import java.math.BigInteger;

public class Solution {

    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        Scanner in = new Scanner(System.in);
        
        int n = in.nextInt();
        BigInteger x = BigInteger.valueOf(n);
        n = n - 1;
        while(n > 0){
            x = x.multiply(BigInteger.valueOf(n));
            n = n-1;
        }
        
        System.out.println(x.toString());
       
    }
}

Problem solution in C++ programming.

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

string multiply(string &num1, string num2) {
    string res;
    int a, b, c, m, n, l, k, sum, carry;
    char d;

    m = num1.size() - 1;
    n = num2.size() - 1;
    carry = 0;
    for (int i = m; i >= 0; i--) {
        for (int j = n; j >= 0; j--) {
            l = res.size() - 1;
            a = num1[i] - '0';
            b = num2[j] - '0';
            k = (m-i) + (n-j);

            if (l >= k) c = res[l-k] - '0';
            else c = 0;

            sum = a * b + c + carry;
            carry = sum / 10;
            d = char(sum % 10 + '0');

            if (l >= k) res[l-k] = d;
            else res.insert(0, &d, 1);

            if (j == 0 && carry) {
                d = char(carry + '0');
                res.insert(0, &d, 1);
                carry = 0;
            }
        }
    }

    return res[0] == '0' ? "0" : res;
}

int main() {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */
    int n;
    cin >> n;
    
    string s = "1";
    for (int i = 1; i <= n; ++i) {
        s = multiply(s, to_string(i));
    }
    cout << s << endl;
    return 0;
}

Problem solution in C programming.

#include<stdio.h>
int main()
{
    int t;
    int a[200]; //array will have the capacity to store 200 digits.
    int n,i,j,temp,m,x;
    scanf("%d",&n);
    a[0]=1;  //initializes array with only 1 digit, the digit 1.
    m=1;    // initializes digit counter

    temp = 0; //Initializes carry variable to 0.
    for(i=1;i<=n;i++)
    {
        for(j=0;j<m;j++)
        {
            x = a[j]*i+temp; //x contains the digit by digit product
            a[j]=x%10; //Contains the digit to store in position j
            temp = x/10; //Contains the carry value that will be stored on later indexes
        }
        while(temp>0) //while loop that will store the carry value on array.
        { 
            a[m]=temp%10;
            temp = temp/10;
            m++; // increments digit counter
        }
    }
    for(i=m-1;i>=0;i--) //printing answer
        printf("%d",a[i]);
    return 0;
}

Problem solution in JavaScript programming.

function processData(input) {
    //Enter your code here
    input = parseInt(input);
    
    var product = [1];
    for (var i = 1; i < input + 1; i++) {
        product = bigMultiply(product, i);
        //console.log('product:' + product);
    }
    console.log(product.join(""));
    
    /*
    console.log("big add test");
    var sum = bigAdd([], [1, 4]);
    console.log('sum: %s', sum);
    
    console.log("big mult test");
    var product = bigMultiply([6], 4);
    console.log("product %s", product);
    */
} 

function bigMultiply(numArray, multiplier) {
    var sum = [];
    for (var i = 1; i <= multiplier; i++) {
        sum = bigAdd(sum, numArray);
        //console.log("sum %s, numArray %s, i $s", sum, numArray, i);
    }
    return sum; 
}

function bigAdd(numArray1, numArray2) {
    var longerArray;
    var shorterArray;
    var sum = [];
    
    if (numArray1.length > numArray2.length) {
        longerArray = numArray1;
        shorterArray = numArray2;
    } else {
        longerArray = numArray2;
        shorterArray = numArray1;
    }
  
    // reverse the array orientation so that base^i start from index 0
    longerArray.reverse();
    shorterArray.reverse();
    
    var carry = 0;
    for (var i = 0; i < longerArray.length; i++) {
        var a = shorterArray[i] || 0;
        var b = longerArray[i];
        var c = a + b + carry;
        
        carry = Math.floor(c / 10);
        var digit = c % 10;
        sum.unshift(digit);
    }
    if (carry > 0) {
        sum.unshift(carry);
    }
    
    // reverse the original arrays. Dirty inefficient.
    longerArray.reverse();
    shorterArray.reverse();
   
    return sum;
}

process.stdin.resume();
process.stdin.setEncoding("ascii");
_input = "";
process.stdin.on("data", function (input) {
    _input += input;
});

process.stdin.on("end", function () {
   processData(_input);
});

Algorithms coding problems solutions AlgorithmsHackerRank

Post navigation

Previous post
Next post

Leave a Reply

Your email address will not be published. Required fields are marked *

Pages

  • About US
  • Contact US
  • Privacy Policy

Follow US

  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2026 Programmingoneonone | WordPress Theme by SuperbThemes