基本思想将 b 转换成二进制数

a^10(10) = a^1000(2)+a^000(2)+a^10(2)+a^0(2)     括号内为进制

以a^b为例


while(b!=0)

{

if(b&1) ans=ans*a;

a=a*a;

b>>=1;

}


复杂度 为 logb       log的复杂度要比n的复杂度快很多


题目链接:http://lx.lanqiao.cn/problem.page?gpid=T2605

题目 答案:https://blog.csdn.net/Cooler_z/article/details/122414536?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164889542216782246423908%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164889542216782246423908&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-122414536.142^v5^pc_search_result_control_group,157^v4^control&utm_term=A%E7%9A%84B%E7%9A%84C%E6%AC%A1%E6%96%B9%E6%AC%A1%E6%96%B9&spm=1018.2226.3001.4187


费马小定理:https://blog.csdn.net/Cooler_z/article/details/122414536