描述两个数的a,b的gcd为1,即a,b互质,现在给你一个数m,你知道与它互质的第k个数是多少吗?与m互质的数按照升序排列。 样例输出 首先对m进行质因数分解,求出m有哪些质因数,然后用容斥求[1, mid]内与m互质的数有多少个。 判断的时候,[1,mid]之间与m互质的数的数量 = mid - ...
分类:
其他好文 时间:
2017-12-10 18:25:25
阅读次数:
104
题目要求出阶乘尾部后有多少个0,其实就是问阶乘里面有多少个10.所以这个问题也就可以等效于问表示阶乘这个数的质因数分解总共有多少个2与5,而2的个数肯定比5的个数多,所以我们只需要求出有多少个5就行了。而质因数分解一个数里有多少个5可以用公式:$n/5+n/5/5+n/5/5/5+……$来进行计算。 ...
分类:
其他好文 时间:
2017-12-08 21:08:49
阅读次数:
130
【BZOJ4524】[Cqoi2016]伪光滑数 Description 若一个大于1的整数M的质因数分解有k项,其最大的质因子为Ak,并且满足Ak^K<=N,Ak<128,我们就称整数M为N-伪光滑数。现在给出N,求所有整数中,第K大的N-伪光滑数。 若一个大于1的整数M的质因数分解有k项,其最大 ...
分类:
其他好文 时间:
2017-11-19 14:15:27
阅读次数:
193
首先,你得先知道任意一个合数可以拆分成若干个素数之积 例如:24=2*2*2*3 然后就简单了,我是先取得一定量的素数(用之前写的素数筛),而后看能否整除,能就继续,不能就除下一个素数。 贴代码: 貌似有更优化的方法,尚未学习,等以后学了再更 ...
分类:
其他好文 时间:
2017-11-15 17:10:53
阅读次数:
149
题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。 现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式;当读到的就是素数时,输出它本身。 输入格 ...
分类:
其他好文 时间:
2017-11-13 13:57:26
阅读次数:
179
题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。 现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式;当读到的就是素数时,输出它本身。 提示: ...
分类:
其他好文 时间:
2017-11-12 11:12:59
阅读次数:
116
【素数判定】 假设输入的都是正数,时间复杂度O(sqrt(n)) 【因数枚举】 时间复杂度O(sqrt(n)). 【质因数分解】 时间复杂度O(sqrt(n)). 【n以内的素数】 埃氏筛法,时间复杂度O(log(log(n))),近似于O(n)。 ...
分类:
编程语言 时间:
2017-11-09 00:49:24
阅读次数:
196
【SinGuLaRiTy-1047】 Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 质因数分解 欧拉线性筛素数 筛法求欧拉函数(线性) Miller-Rabbin素数判定法 倍增求快速幂 大数乘法取幂 GCD & LCM 至于LCM=a*b ...
分类:
其他好文 时间:
2017-11-05 17:23:49
阅读次数:
205
我们有可能在某些数学题中会求到某个数的因数和,那我们怎么求呢? 因为我们知道任意一个合数都可以由两个或多个质数相乘得到,那么我们就先分解质因数吧 例:我们随便去一个数吧,嗯,就108了,好算。。。 我们将108质因数分解:2*2*3*3*3 也就是:2^2 * 3^3 我们可以看到108的因数有2^ ...
分类:
其他好文 时间:
2017-11-05 00:28:19
阅读次数:
303
一般做组合数的题目都要进行质因数的分解,我们一般是for循环对每个数进行质因数分解,大多数情况都不会超时,但极少数的情况下,题目会不允许这样的做法,所以我们需要学会一种更快的方法来求质因数。 我们一般的方法是对每个数进行质因数分解: 但如果想要更快的分解,我们可以直接对n!进行分解: 首先先进行素数 ...
分类:
其他好文 时间:
2017-11-03 22:03:50
阅读次数:
271