Skip to content

Commit 4d5a1d3

Browse files
committed
BigInteger value Factorial
1 parent bda4a54 commit 4d5a1d3

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed

Basic-Java/BigFactorial.java

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import java.math.BigInteger;
2+
import java.util.Scanner;
3+
4+
public class BigFactorial {
5+
6+
public static void main(String[] args) {
7+
8+
System.out.println("Program to find factorial of a number\n---");
9+
10+
int num, limit = 200; //recommended limit is 200 for RAM; can be upto 700
11+
Scanner scanner = new Scanner (System.in);
12+
13+
System.out.print("Enter the number: ");
14+
num = scanner.nextInt();
15+
16+
if (num>limit || num< -limit) {
17+
System.out.println("Cannot perform factorial for input greater than or lesser than "+limit+".");
18+
end();
19+
}
20+
scanner.close();
21+
22+
if (num<0) {
23+
num = -num;
24+
System.out.println("-"+num+"! = -"+factorial(num));
25+
end();
26+
//For numbers lesser than zero.
27+
}
28+
else {
29+
System.out.println(num+"! = "+factorial(num));
30+
end();
31+
//For numbers greater than or equal to zero.
32+
}
33+
34+
}
35+
36+
private static Object factorial(int num) {
37+
38+
long n = num;
39+
BigInteger output = new BigInteger("1");
40+
41+
while (n>0) {
42+
output = output.multiply(BigInteger.valueOf(n));
43+
n-=1;
44+
}
45+
return output;
46+
}
47+
48+
private static void end() {
49+
System.out.println("---\nThe Program has ended.");
50+
System.exit(0);
51+
}
52+
53+
}

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ ___
2525
| 9 | [Prime Number Checker](/Basic-Java/PrimeNumberChecker.java) | A Program to check if the entered number is a Prime Number or not. | if/else, for loops |
2626
| 10 | [ASCII Value Of Character](/Basic-Java/AsciiOfCharacter.java) | A Program to find ASCII Value of a Character entered. | TypeCasting |
2727
| 11 | [Generate Random Number](/Basic-Java/RandomNumberGeneration.java) | A Program to generate Random Number, Also to generate Random Number between a Range. | Math.random() function |
28-
| 12 | [Factorial](/Basic-Java/Factorial.java) | A Program to find Factorial of an Integer. | while loop |
28+
| 12 | [Factorial](/Basic-Java/Factorial.java) | A Program to find Factorial of an Integer. (For limit = 20) | while loop, long |
29+
| 13 | [Factorial for Bigger Integers](/Basic-Java/BigFactorial.java) | A Program to find Factorial for an integer value up to 200. | while loop, BigInteger |
2930

3031
### List of Other Programs:
3132

0 commit comments

Comments
 (0)