Olbrzymie liczby

0

Witam!

mam male, mozliwe ze bardzo proste pytanie.

Chce zamienic liczbe real na integer, lecz to nie moze byc (przynajmniej mi nie dziala) zwykla zamiana round lub Trunc, poniewaz wyskakuje mi komunikat: "Invalid floating point operation".

Podejrzewam, ze chodzi o to, iz liczba real, czyli zmiennoprzecionkowa nie moze zostac zmieniona na integer (proste-jest za duza). Ale ja musze ja zamienic, bo musze z niej wyciagnac pozniej mod, ktore wyciaga sie tylko z calkowitych liczb.

Do potegowania uzywam intPower lub Power (probowalem Exp)
Moja zmienna wyglada: M := Round(liczba1,liczb2) mod n;
(zmienan M, probowalem juz longint, word, int64 - nic nie zadzialalo)

Moze ma ktos pomysl na rozwiazanie tego problemu?

1)Probowalem juz stworzyc wlasnia potege, lecz liczba integer jest zbyt mala do moicg liczb, poniewaz nie raz potega wynosi np. 1931^59467.
2)Probowalem dzielic wedlug praw na potegach, lecz tez integer nie mieci mi tej liczby.

Moze jest jakis typ zmiennej, ktory pomiesci tak duze liczby i wyciagnie z nich mod?

// czyżby RSA? ;-) - ŁF

0

Właściwie format liczb zmiennoprzecinkowych nie jest aż tak zagmatwany, żeby samemu sobie nie poradizć... Coś takiego nawet pisałem i jesli nie przeszkadz ci, że to cpp, to w dziale download masz plik ulamki.zip. Poza tym możesz to razem skompilować z vlong.pas (też w dziale download) i już masz wszystko, czego potrzebujesz :).

1 użytkowników online, w tym zalogowanych: 0, gości: 1