如果与唯一定理一起应用需要用到素数筛,可以看这篇文章:
线性筛判断素数


唯一分解定理:

任何一个大于1的自然数 N,如果N不为质数,**那么N可以唯一分解成有限个质数的乘积:

这里P1<P2<P3…<Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式。

定理应用:


3.用唯一分解求a,b的gcd,lcm(ak,bk为质数的幂):

4.在不取mod的情况下,用唯一分解求组合数:

解释:

  1. 因子:如果a%b==0,就称b是a的因子,例如8的因子有: 1,2,4,8;
  2. 因数:假如a*b=c(a、b、c都是整数),那么我们称a和b就是c的因数。

用代码实现:

1.素数分解–欧拉筛(线性筛)

#define maxn 10000001
bool number[maxn+5];
ll prime[maxn/10];//素数不能开到1e7
int len;
void isprime()
{len=0;memset(number,true,sizeof(number));for(int i=2; i<=maxn; i++){if(number[i])prime[len++]=i;for(int j=0; j<len&&prime[j]*i<=maxn; j++){number[prime[j]*i]=false;if(i%prime[j]==0)break;}}
}

2.唯一分解定理:

int factor[10000];
void geta(ll n)//算ai等于多少(幂指数)
{memset(factor,0,sizeof(factor));int cas=0;for(int i=0;i<len&&prime[i]*prime[i]<=n;i++){while(n%prime[i]==0)//这里不能改{factor[cas]++;n/=prime[i];}if(factor[cas])cas++;}if(n>1)//prime[i]*prime[i]<=nn当不满足这个条件的时候就应该还有一个素数的一次方factor[cas]=1;
}
int p[100001];
void getp(ll q)//筛出唯一分解定理的底数
{cnt = 0;for (int i = 2, x = q; (long long)i * i <= q; i++)//筛出q的p1,p2,p3...(唯一分解定理里面的底数)if (!(x % i)){p[++cnt] = i;while (!(x % i))x /= i;}//例如q=300000时,q=2^5*3^1*5^5,此时数组a中存储的元素是2,3,5,cnt=3;if (x > 1)  //如果最后x大于1,即最后产生了一个小的素数,直接保存即可p[++cnt] = x, x = 1;
}

前两天碰到的一道codeforces上的题:
C. Division–素数筛+唯一分解定理
Pairs Forming LCM LightOJ - 1236

侵删

唯一分解定理一篇就够了相关推荐

  1. 学Redis这篇就够了!

    作者:王爷科技 https://www.toutiao.com/i6713520017595433485 Redis 简介 & 优势 Redis 数据类型 发布订阅 订阅者的客户端显示如下 事 ...

  2. api网关选型_如何轻松打造百亿流量API网关?看这一篇就够了(下)

    如何轻松打造百亿流量API网关?看这一篇就够了(上) 上篇整体描述了网关的背景,涉及职能.分类.定位环节,本篇进入本文的重点,将会具体谈下百亿级流量API网关的演进过程. 准备好瓜子花生小板凳开始积累 ...

  3. override java field_JavaPoet 看这一篇就够了

    Post Views: 13 JavaPoet 是用来生成 Java 代码的一个 Java Library. 学习 JavaPoet, 唯一也是最快的方法是自己动手生成一个 Java Code 文件. ...

  4. React入门看这篇就够了

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所 ...

  5. python空集_玩转Python集合,这一篇就够了!

    原标题:玩转Python集合,这一篇就够了! 点上方蓝色" 菜鸟学Python",选" 星标"公众号 重磅干货,第一时间送到 选自DataCamp, 作者:Mi ...

  6. 史上最全的Linux常用命令汇总①收藏这一篇就够了!(超全,超详细)

    史上最全的Linux常用命令汇总①(超全面!超详细!)收藏这一篇就够了! Linux命令基础 Shell Linux命令分类 Linux命令行的格式 编辑Linux命令行的辅助操作 获取命令帮助的方法 ...

  7. uiautomation遍历windows所有窗口_万字长文!滑动窗口看这篇就够了!

    大家好,我是小浩.今天是小浩算法 "365刷题计划" 滑动窗口系列 - 整合篇.之前给大家讲解过一些滑动窗口的题目,但未作系统整理. 所以我就出了这个整合合集,整合工作中除了保留原 ...

  8. 史上最全!用Pandas读取CSV,看这篇就够了

    导读:pandas.read_csv接口用于读取CSV格式的数据文件,由于CSV文件使用非常频繁,功能强大,参数众多,因此在这里专门做详细介绍. 作者:李庆辉 来源:大数据DT(ID:hzdashuj ...

  9. Spring Cloud入门,看这篇就够了!

    点击▲关注 "中生代技术"   给公众号标星置顶 更多精彩 第一时间直达 概述 首先我给大家看一张图,如果大家对这张图有些地方不太理解的话,我希望你们看完我这篇文章会恍然大悟. 什 ...

最新文章

  1. Lesson 12.1 深度学习建模实验中数据集生成函数的创建与使用
  2. BugKuCTF 杂项 隐写
  3. 02_Flink vs storm vs SparkStreaming、Flink vs storm对比图、实时框架如何选择
  4. Information Retrieval --- Outline
  5. if命令在HTML语言中 隐藏部分内容,vuejs使用v-if隐藏不需要的内容,生成的html标签中有!-----,请问怎样去掉这些注释?...
  6. HDU-1151 Air Raid
  7. Citrix 实践中的问题及解决
  8. spring学习--基于注解 注入属性
  9. bzoj 4883 [Lydsy1705月赛]棋盘上的守卫——并查集(思路!)
  10. 如约而至!第二期 Flink 极客训练营上线啦
  11. SAP-MM-PA精解分析系列之基本介绍(01)-采购基本流程
  12. VS code 代码鼠标滑轮缩放
  13. MATLAB函数汇总
  14. 【Mac 教程系列第 14 篇】如何设置 Mac 允许从任意来源下载 App
  15. 模块独立性与高内聚低耦合
  16. 简单的分布式矩阵乘法
  17. 行人重识别 度量学习
  18. 邮件安全隐患有哪些?邮件安全如何保护?
  19. Lightroom人像磨皮滤镜插件portraiture Mac版
  20. 思维导图浅析入门知识图谱(Knowledge Graph)

热门文章

  1. jsp调用shell脚本
  2. bugreport实战
  3. 硬件安全技术-芯片安全设计技术一
  4. java getelementsbytagname 不全,java – getElementsByTagName不起作用
  5. VC++ 串口 VARIANT型变量转换为ColeSafeArray型变量老提示错误
  6. 【AI简报20220211期】硬核UP主自己造了一个激光雷达、详解AI加速器
  7. [IOS]拉伸图片 保持部分不变形
  8. 最小二乘法、相关系数、决定系数的区别与联系
  9. CSS 之 z-index 属性详解
  10. 有史以来最狂妄的演讲——Oracle CEO埃里森