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