基础数论
质数
质因数分解
算术基本定理:
int primes[N], cnt[N], m;
void divide(int n)
{
rep(i,2,n/i)
{
if(n%i==0) primes[++m]=i;
while(n%i==0)
{
n/=i;
cnt[m]++;
}
}
if(n>1)
{
primes[++m]=n;
cnt[m]=1;
}
}
哪个if是不是多余?
并不是的之前我感觉那个if是多余的,直接用map去存可以省掉哪个if但是用map去存复杂度就变成了
约数
求最大公约数
下面证明该定理:
首先需要引入一些数论中用于证明的基本知识:
证明:
如果能证明
int gcd(int a, int b)
{
return b?gcd(b,a%b):a;
}
未完待续......
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
2022-12-22 剪枝