(模板)唯一分解定理

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 }

 

以上是关于(模板)唯一分解定理的主要内容,如果未能解决你的问题,请参考以下文章

(模板)唯一分解定理

小航的算法日记算术基本定理

唯一分解定理应用

FJUT OJ 2121 唯一分解定理

唯一分解定理

UVA - 11388 唯一分解定理