How to multiply two very large numbers greater than 32 characters for example multiplication of 100! with 122! or 22^122 with 11^200 by the help of divide and conquer, do any body have java code or C# code?
A:
Here's some integer multiplication algorithms:
http://en.wikipedia.org/wiki/Multiplication_algorithm
Here's a class library for numbers:
It includes the Karatsuba and Schonhage-Strassen algorithms for multiplying large integers.
Larry Watanabe
2010-01-03 22:53:57
+2
A:
You should probably use java.math.BigInteger. This allows representations of integer values well in excess of 2^32 or even 2^64. BigInteger values are essentially limited only by the amount of memory available to the program, i.e. ~4 GB on a 32-bit system and pretty much available physical+virutal memory for 64-bit systems.
import java.math.BigInteger;
class Foo
{
public static void main(String args[])
{
BigInteger bigInteger100Fact = bigFactorial(BigInteger("100")); //where bigFactorial is a user-defined function to calculate a factorial
BigInteger bigIntegerBar = new BigInteger("12390347425734985347537986930458903458");
BigInteger product = bigIntegerFact.multiply(bigIntegerBar);
}
}
EDIT: Here's a BigInteger factorial function if you need one: http://leepoint.net/notes-java/data/numbers/60factorial.html
Chinmay Kanchi
2010-01-03 23:05:32
yes, and for C# consider intX, http://www.codeplex.com/IntX/
GregS
2010-01-04 00:02:44