Hallo
also Int32 hat einen Wertebereich von -2.147.483.648 bis 2.147.483.647. wie du leicht siehst sind das deutlich weniger als 100000 Stellen um genau zu sein nur 10.
Du sollst quasi ein Array von Integerzahlen erstellen [int1,int2,in3, .... int1000].
Wenn es nun in einem Integerwert einen Überlauf gibt also n! * (n+1) > 214483647 musst du die "übergelaufene Stelle" in mit deinem nächsten Element in dein Array Packen.
Mal als Beispiel wenn Int nur einen Wertebereich von 0 bis 9 hätte mit Array von 5 Integern:
Fac(1) = [1,0,0,0,0]
Fac(2) = [2,0,0,0,0]
Fac(3) = [6,0,0,0,0]
Hier kommt jetzt der Überlauf -> 24
Fac(4) = [4,2,0,0,0]
Jetzt musst du die Berechnung die du im normalen Schulaltag mit einem Zehnersystem durchführst quasi "nur" auf ein System mit Basis 2.147.483.648 überführen
PS.: Anstatt ein Integerarray int[], ist natürlich List<int> deutlich sbesser aber deine Aufgabe heißt Integerarray mit 2000 also:
int[] intArray = new int[2000];
(hierbei wirst du dir vielleicht in einer Variablen noch speichern müssen welches Intergerwert der letzte gefüllte war, für die nächste Berechnung.)