Velky integer
Jindrich Makovicka
makovick na kmlinux.fjfi.cvut.cz
Úterý Říjen 29 10:42:11 CET 2002
Petr Kučera wrote:
> #include <stdio.h>
>
> long long cislo;
>
> void primefactor(long long Cislo)
> {
> long long pom;
>
> while(Cislo%2==0 & 4<abs(Cislo))
> {
> printf("2 ");
> Cislo/=2;
> }
> pom=3;
> while(pom*pom<abs(Cislo))
^^^^^^^^^
tady by melo byt llabs, ale radsi tam dejte neco jako s = sqrt(Cislo)+1
while (pom <= s), at to trochu urychlite
> {
> if(Cislo%pom==0)
> {
> printf("%Ld ", pom);
> Cislo/=pom;
> }
> else
> {
> pom+=2;
> }
> }
> printf("%Ld", Cislo);
> }
>
> main()
> {
> cislo=1;
> while(cislo<2*cislo)
> {
> cislo*=2;
> }
> cislo*=2;
> cislo-=1;
> primefactor(cislo);
> printf("\n%Ld\n", cislo);
> }
> Chci resit rovnice typu a^x mod y = b, kde a i y jsou dost velka
> cisla.
> Zkousel jsem maple, ale ten je dost pomaly.
PS: doufam, ze se timhle zpusobem nesnazite louskat RSA...
--
Jindrich Makovicka
Další informace o konferenci Linux