摘要:
1 // 求一个数的所有因子数、先分解、n=(a^x)*(b^y)*(c^z),(a、b、c均为素数)、因子数=(x+1)*(y+1)*(z+1).2 3 // n!的素因子分解中的素数p的幂为[n/p]+[n/p^2]+[n/p^3]+.....(运用:求n!末尾0的个数,即求因子5的个数即可).4 5 // 二次探测定理:如果p是一个素数,且0<x<p,则方程x^2%p=1的解为x=1或x=p-1.6 7 // 欧拉定理:对任何两个互质的正整数a,m(m>=2)有a^φ(m)≡1(mod m).89 // 费马小定理:对于一个素数p和任意一个正整数a,有a^(p-1)≡1 阅读全文
摘要:
题意:给定一个数n(2<=n<=10^14),判断其是否是素数。思路:n很大,所以要用到Miller_Rabin素数测试法,直接用二分幂一直wrong,超long long范围,所以要用到multi()。题目链接:http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1517View Code 1 /*************************Miller_Rabin素数测试(有待改进)*******************************/ 2 #include <cstdio> 3 #include <cm 阅读全文
摘要:
题意:给定一个n (1 <= n <= 10^16),求小于等于n的最大反素数。反素数(对于任何正整数x,起约数的个数记做g(x).例如g(1)=1,g(6)=4.如果某个正整数x满足:对于任意i(0<i<x),都有g(i)<g(x),则称x为反素数.)。思路:即求小于等于n的约数最多的数,因为一个数的因子数等于它所有素因子幂加1的乘积,要求最大的反素数,则素因子尽可能要少,幂尽可能要多,所以只对前15个素数所能组成的数进行遍历即可。题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=15 阅读全文