esse codigo funciona, mas só até o numero 20. numeros maiores que esse ou numeros muito grandes, dão errado. tem alguma forma de resolver o problema?
long contador = 1;
long contador2 = 0;
long fatorial = 0;
long contador3 = 0;
for (fatorial = 9; fatorial > 0;) {
contador = contador * fatorial;
contador2++;
fatorial = fatorial - 1;
}
System.out.print("O fatorial de " + contador2 + "! é : " );
for (contador3 = contador2; contador3 > 0;) {
System.out.print(contador3);
if (contador3 > 1) {
System.out.print( " x ");
}
if (contador3 == 1) {System.out.print(" = ");}
contador3 = contador3 - 1;
}
System.out.print(contador);
}