Skip to content
Programmingoneonone
Programmingoneonone

LEARN EVERYTHING ABOUT PROGRAMMING

  • Home
  • CS Subjects
    • IoT ? Internet of Things
    • Digital Communication
    • Human Values
  • 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
Programmingoneonone

LEARN EVERYTHING ABOUT PROGRAMMING

HackerRank Extra Long Factorials problem solution

YASH PAL, 31 July 2024

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

Topics we are covering

Toggle
  • Problem solution in Python programming.
  • Problem solution in Java Programming.
    • Problem solution in C++ programming.
    • Problem solution in C programming.
    • Problem solution in JavaScript programming.

Problem solution in Python programming.

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))

Problem solution in Java Programming.

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

Post navigation

Previous post
Next post
  • Automating Image Format Conversion with Python: A Complete Guide
  • HackerRank Separate the Numbers solution
  • How AI Is Revolutionizing Personalized Learning in Schools
  • GTA 5 is the Game of the Year for 2024 and 2025
  • Hackerrank Day 5 loops 30 days of code solution
How to download udemy paid courses for free

Pages

  • About US
  • Contact US
  • Privacy Policy

Programing Practice

  • C Programs
  • java Programs

HackerRank Solutions

  • C
  • C++
  • Java
  • Python
  • Algorithm

Other

  • Leetcode Solutions
  • Interview Preparation

Programming Tutorials

  • DSA
  • C

CS Subjects

  • Digital Communication
  • Human Values
  • Internet Of Things
  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2025 Programmingoneonone | WordPress Theme by SuperbThemes