Ciao a tutti,
devo realizzare un metodo che calcoli il fattoriale di un numero, utilizzando i BigInteger.
Il problema mi si presenta col comando
codice:
	a.subtract(BigInteger.ONE);
dove a è dichiarato come:
codice:
BigInteger a= new BigInteger("5");
Nell'esempio che sto facendo ipotizzo che sia da calcolare il fattoriale di 5, quindi di volta in volta dovrei sottrarre 1 ad a.

Ho notato che 5 è una stringa, mentre subtract() vuole un numero, ma non capisco se in questo caso va bene così..

Ho un'altra domanda: Qualcuno mi saprebbe spiegare, anche in modo semplice, come i BigInteger memorizzano il numero? Cioé, come mai possono contenere numeri grandissimi?

Ho letto nelle API ma non ho capito molto