「学习笔记」分解质因数
#
本文涉及唯一分解定理,这个在之前的最大公因数那篇中提到了,可以去看一下,不过在本文我还是会在复述一遍
唯一分解定理#
定义:任何一个大于 的自然数 ,如果 不为质数,那么 可以唯一分解成有限个质数的乘积 ,这里 均为质数,其中指数 是正整数。这样的分解称为 的标准分解式。
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
inline ll read() {
ll x = 0;
int fg = 0;
char ch = getchar();
while (ch < '0' || ch > '9') {
fg |= (ch == '-');
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
x = (x << 3) + (x << 1) + (ch ^ 48);
ch = getchar();
}
return fg ? ~x + 1 : x;
}
const int N = 1e7 + 5;
int n;
int num[N];
int main() {
n = read();
int maxn = sqrt(n) + 0.5;
printf("%d = ", n);
for (int i = 2; i <= maxn; ++ i) {
if (n < i) break;
while (n % i == 0) {
n /= i;
printf("%d * ", i);
}
}
if (n != 1) {
printf("%d\n", n);
}
else {
printf("1\n");
}
return 0;
}
这个算法是 ,如果能提前打出质数表,复杂度会更优秀!
性质#
前提:如果一个正整数 ,他的标准分解式为
、它的正因数个数
证明:对于 来说,选的个数有 种,即,其他的质因数同理,最后用乘法原理即可
、它的正因数之和
证明:你把这个式子拆开就行了
、
这个在最大公因数那篇文章中证过,这里不再证了
作者:yifan0305
出处:https://www.cnblogs.com/yifan0305/p/17040937.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
转载时还请标明出处哟!
朝气蓬勃 后生可畏
分类:
数学知识
Buy me a cup of coffee ☕.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示