Hallo ihr zwei,
Das Problem liegt nicht an den großen Zahlen, JS kann bis ~10^308 rechnen. Die Modulo-Division ermittelt den Rest einer ganzzahligen Division.
IMHO liegt es sehr wohl an den großen Zahlen. 75^167 ist ganz grob 10^300, in dem Bereich kann JavaScript zwar noch rechnen, aber nicht mit Genauigkeit 1. Vielmehr wird es ungefähr die ersten 30 (wenn überhaupt) Stellen der Zahl speichern und den Rest als 10er-Potenz, genau wie bei floats. Die Modulo-Operation muß also scheitern, weil die entscheidenden letzten 270 Stellen der Zahl (*g*) gar nicht bekannt sind.
Als Lösung fällt mir nur ein, den Ausdruck mathematisch aufzubrechen.
z.B. 30^100 mod 999 == ((30x30x30)^33 x 30) mod 999; 30x30x30 == 27000; 27000 mod 999 == 27;
=> ((30x30x30)^33 x 30) mod 999 == (27^33 x 30) mod 999 usw.
Das ist ein bißchen Kopfarbeit, aber machbar ;)
Simon