数论 | 算术基本定理
算术基本定理(唯一分解定理):任何一个大于
定理推论
- 一个大于
的整数 ,如果它的标准分解式为 ,那么它的正因数个数为
简单证明:
根据乘法原理,整体选法总数为:
- 它的全体正因数之和为
简单证明:
我们将
多项式中每个单项式的结构均为
常见题型
求正因数个数
需要先用到欧拉筛生成质数,然后用质数从小到大分解
bool is_prime[SIZE];
int prime[SIZE], primesize = 0;
// 欧拉筛生成质数代码省略
int fact_cnt(int n)
{
int now = n, ans = 1;
for (int i = 0; i < primesize && prime[i] <= sqrt(now); i++)
{
int cnt = 0;
while (now % prime[i] == 0)
{
cnt++;
now /= prime[i];
}
ans *= (cnt + 1);
}
if (now != 1)
ans *= 1 + 1;
return ans;
}
判断正因数之和奇偶性
需要以下结论:
- 奇数个奇数相加为奇数,偶数个奇数相加为偶数
- 奇数乘奇数为奇数,奇数乘偶数为偶数,偶数乘偶数为偶数
- 除了
,质数均为奇数。因此除了 ,质数的任意次幂都是奇数。
假设
情况 1:若
如果
即
因为
情况 1.1:若
情况 1.2:若
情况 2:若
所以
综上所述:若
代码实现非常简单,略去。
本文采用 CC BY-SA 4.0 许可,本文 Markdown 源码:Haotian-BiJi