Возведение в степень чисел
От Vik (2:5020/400) к All
В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)
From: Vik <vik@chelnydom.ru>
Хочу изучить RSA от Микрософта. Точнее посмотреть как они возводят в
степень числа. Привожу свой вариант, на языке си. Две константы просто
члены ряда Фибоначчи. Укажите плиз где и с какого места читать код RSA
в windows.
#define F1 9227465UL
#define F2 14930352UL
static unsigned long a0,a1,a2,a3;
unsigned long tutu(unsigned long b,unsigned long c,unsigned long d)
{
unsigned long e=1UL;
if(d<16UL) {
if(d&8UL)
e*=a3;
if(d&4UL)
e*=a2;
if(d&2UL)
e*=a1;
if(d&1UL)
e*=a0;
return e;
}
if(d>c) {
e=tutu(b,c,d-c);
d=c;
}
return e*tutu(c-b,b,d);
}
int main()
{
unsigned long f;
scanf("%lu%lu",&a,&f);
a0=a;a1=a*a;a2=a1*a1;a3=a2*a2;
printf("%lu\n",tutu(F1,F2,f));
return 0;
}
--- ifmail v.2.15dev5.4
* Origin: http://groups.google.com (2:5020/400)
Ответы на это письмо:
From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку
From: Username
Или коротким