ll fastpow(ll a, ll b, ll p) {
a = a % p;
ll ans = 1,base = a;
while (b) {
if (b & 1)ans = (ans * base) % p;
base = (base * base) % p;
b >>= 1;
}
return ans;
}
分解素数
//多个分解
#define MAXX ((int) 1e5)
int f[MAXX + 10];
void init() {
memset(f, 0, sizeof(f));
for (int i = 2; i <= MAXX; i++) if (!f[i]) for (int j = i; j <= MAXX; j += i) f[j]++;
}
//单个分解
int getCnt(int m) {
set<int> mset;
int i = 2;
while (i < m)
{
if (m % i == 0)
{
mset.insert(i);
m /= i;
}
else
i++;
}
if(m > 1)mset.insert(m);
return mset.size();
}
本文介绍了一种快速幂运算算法,该算法用于高效计算模意义下的幂次方。此外,还提供了两种素数分解的方法:一种适用于多个整数的预处理,另一种用于单个整数的实时分解。
1086

被折叠的 条评论
为什么被折叠?



