+1 дауыс
1.7k көрілді
2-нің 1000 дәрежесін қалай табам? длинная арифметикасыз?

2 жауап

0 дауыс
exp(100*ln(2));




Шамамен осылай болар, ұмытып қалыппын)
маған 1000 дәреже керек, ал ол стандарт типтердің (integer,int64,longint) ешқайсысына сыймайды!!!
double - 5x10(-324 дәрежесі) - 1,7x10(308 дәрежесі)
extended - 3,4x10(-4932 дәрежесі) - 1,1x10(4932 дәрежесі)
негізі сіздікі дұрыс, бірақ маған бүтін сан ретінде керек...((
ал extended, double да бөлшек е+3010
+1 дауыс

(a * b) mod c = ((a mod c) * (b mod c)) mod c 

осы формуланы қолданып мынаған келуге болады:

a^n mod c = (a * ... * a) mod c = (...((a mod c) * a) mod c) * a) mod c

яғни біз үшін c=10 өйткені a mod 10  бізге санның соңғы цифрасын қайтарады

паскаль тілімен жазғанда:

result := 1

for i := 1 to 1000 do result = (result * 2) mod 10;

writeln(result);

https://surak.baribar.kz/572827/
...