(模板)唯一分解定理
Posted hznudreamer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(模板)唯一分解定理相关的知识,希望对你有一定的参考价值。
1 const int maxn = 1e6+10; 2 3 int prime[maxn]; 4 int vis[maxn]; 5 int cnt; 6 7 void is_prime() {//线性筛 8 for (int i = 2; i < maxn; i++) { 9 if (!vis[i]) prime[cnt++] = i; 10 for (int j = 0; j < cnt && i * prime[j] < maxn; j++ ){ 11 vis[i * prime[j]] = 1; 12 if (i % prime[j] == 0) break; 13 } 14 } 15 } 16 17 18 int get_num(int x) {//获得1到x区间内x因数的个数 19 int res = 1; 20 for (int i = 0; i < cnt && prime[i] * prime[i] <= x; i++) { 21 if (x % prime[i] == 0) { 22 int num = 0; 23 while (x % prime[i] == 0) { 24 num++; 25 x /= prime[i]; 26 } 27 res *= (1 + num); 28 } 29 } 30 if (x > 1) res *= 2ll; 31 return res; 32 }
以上是关于(模板)唯一分解定理的主要内容,如果未能解决你的问题,请参考以下文章