唯一分解定理一篇就够了
如果与唯一定理一起应用需要用到素数筛,可以看这篇文章:
线性筛判断素数
唯一分解定理:
任何一个大于1的自然数 N,如果N不为质数,**那么N可以唯一分解成有限个质数的乘积:
这里P1<P2<P3…<Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式。
定理应用:
3.用唯一分解求a,b的gcd,lcm(ak,bk为质数的幂):
4.在不取mod的情况下,用唯一分解求组合数:
解释:
- 因子:如果a%b==0,就称b是a的因子,例如8的因子有: 1,2,4,8;
- 因数:假如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
侵删
唯一分解定理一篇就够了相关推荐
- 学Redis这篇就够了!
作者:王爷科技 https://www.toutiao.com/i6713520017595433485 Redis 简介 & 优势 Redis 数据类型 发布订阅 订阅者的客户端显示如下 事 ...
- api网关选型_如何轻松打造百亿流量API网关?看这一篇就够了(下)
如何轻松打造百亿流量API网关?看这一篇就够了(上) 上篇整体描述了网关的背景,涉及职能.分类.定位环节,本篇进入本文的重点,将会具体谈下百亿级流量API网关的演进过程. 准备好瓜子花生小板凳开始积累 ...
- override java field_JavaPoet 看这一篇就够了
Post Views: 13 JavaPoet 是用来生成 Java 代码的一个 Java Library. 学习 JavaPoet, 唯一也是最快的方法是自己动手生成一个 Java Code 文件. ...
- React入门看这篇就够了
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所 ...
- python空集_玩转Python集合,这一篇就够了!
原标题:玩转Python集合,这一篇就够了! 点上方蓝色" 菜鸟学Python",选" 星标"公众号 重磅干货,第一时间送到 选自DataCamp, 作者:Mi ...
- 史上最全的Linux常用命令汇总①收藏这一篇就够了!(超全,超详细)
史上最全的Linux常用命令汇总①(超全面!超详细!)收藏这一篇就够了! Linux命令基础 Shell Linux命令分类 Linux命令行的格式 编辑Linux命令行的辅助操作 获取命令帮助的方法 ...
- uiautomation遍历windows所有窗口_万字长文!滑动窗口看这篇就够了!
大家好,我是小浩.今天是小浩算法 "365刷题计划" 滑动窗口系列 - 整合篇.之前给大家讲解过一些滑动窗口的题目,但未作系统整理. 所以我就出了这个整合合集,整合工作中除了保留原 ...
- 史上最全!用Pandas读取CSV,看这篇就够了
导读:pandas.read_csv接口用于读取CSV格式的数据文件,由于CSV文件使用非常频繁,功能强大,参数众多,因此在这里专门做详细介绍. 作者:李庆辉 来源:大数据DT(ID:hzdashuj ...
- Spring Cloud入门,看这篇就够了!
点击▲关注 "中生代技术" 给公众号标星置顶 更多精彩 第一时间直达 概述 首先我给大家看一张图,如果大家对这张图有些地方不太理解的话,我希望你们看完我这篇文章会恍然大悟. 什 ...
最新文章
- Lesson 12.1 深度学习建模实验中数据集生成函数的创建与使用
- BugKuCTF 杂项 隐写
- 02_Flink vs storm vs SparkStreaming、Flink vs storm对比图、实时框架如何选择
- Information Retrieval --- Outline
- if命令在HTML语言中 隐藏部分内容,vuejs使用v-if隐藏不需要的内容,生成的html标签中有!-----,请问怎样去掉这些注释?...
- HDU-1151 Air Raid
- Citrix 实践中的问题及解决
- spring学习--基于注解 注入属性
- bzoj 4883 [Lydsy1705月赛]棋盘上的守卫——并查集(思路!)
- 如约而至!第二期 Flink 极客训练营上线啦
- SAP-MM-PA精解分析系列之基本介绍(01)-采购基本流程
- VS code 代码鼠标滑轮缩放
- MATLAB函数汇总
- 【Mac 教程系列第 14 篇】如何设置 Mac 允许从任意来源下载 App
- 模块独立性与高内聚低耦合
- 简单的分布式矩阵乘法
- 行人重识别 度量学习
- 邮件安全隐患有哪些?邮件安全如何保护?
- Lightroom人像磨皮滤镜插件portraiture Mac版
- 思维导图浅析入门知识图谱(Knowledge Graph)