题目链接 Pollard_Rho:http://blog.csdn.net/thy_asdf/article/details/51347390 #include<cstdio> #include<cctype> #include<algorithm> #define gc() getchar() const int p[]={2,3,5,7,11,13,17,19}; typedef long long LL; LL Ans; inline LL read() { LL…
Miller-Rabin & Pollard-rho 很久之前就学过了...今天重学一遍 利用费马小定理,但不能判断伪素数的情况 基于a的伪素数n: \(a^{n-1} \equiv 1 \pmod n\) 如果对于所有与n互质的数都成立,则n为Carmichael数 定理: 对于质数\(p\)和\(e \ge 1\) \[ x^2 \equiv 1 \pmod p^e \] 只有两个解\(x=1,\ x=-1\) 分解\(n=u*2^t\),反复平方的时候如果存在非平凡平方根则不是质数 可以证…
http://www.spoj.com/problems/FACT0/en/ 给一个小于1e15的数,将他分解. miller-rabin & pollard-rho模板 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int xjb=10; ll mmul(ll a, ll b, ll m){ ll d=((long double)a/m*b+1e-8); ll r=a*b-d*m;…
Miller-Rabin模板 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; long long T,n,mx; long long mul(long long a,long long b,long long mod) { long long nw=a*b-(long long)((long double)a/mod*b+1e-8)*mod; return nw&l…
论O(1)快速乘和O(logn)快速乘的差距-. //By SiriusRen #include <cstdio> #include <algorithm> using namespace std; typedef long long ll; ll shai[10]={2,3,5,7,11,13,17,19,23,29}; ll mul(ll a,ll b,ll p){ ll d=((long double)a/p*b+1e-8); ll res=a*b-d*p; res=res&…
说实话,我知道每一步都干啥,但我完全不知道为啥这么做,也不知道为什么是正确的,反正会用就行了~ #include <cmath> #include <cstdio> #include <algorithm> #define ll long long #define ull unsigned long long #define setIO(s) freopen(s".in","r",stdin) using namespace st…
Input 第一行:CAS,代表数据组数(不大于350),以下CAS行,每行一个数字,保证在64位长整形范围内,并且没有负数.你需要对于每个数字:第一,检验是否是质数,是质数就输出Prime 第二,如果不是质数,输出它最大的质因子是哪个. Output 第一行CAS(CAS<=350,代表测试数据的组数) 以下CAS行:每行一个数字,保证是在64位长整形范围内的正数. 对于每组测试数据:输出Prime,代表它是质数,或者输出它最大的质因子,代表它是和数 Sample Input 6 2 13 1…
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #define ll long long using namespace std; int n; ll x,mx; ll gcd(ll a,ll b) { if(!b)return a; return gcd(b,a%b); } i64 mul(i64 a,i64 b,…
数论入门2 另一种类型的数论... GCD,LCM 定义\(gcd(a,b)\)为a和b的最大公约数,\(lcm(a,b)\)为a和b的最小公倍数,则有: 将a和b分解质因数为\(a=p1^{a1}p2^{a2}p3^{a3}...pn^{an},b=p1^{b1}p2^{b2}p3^{b3}...pn^{bn}\),那么\(gcd(a,b)=\prod_{i=1}^{n}pi^{min(ai,bi)},lcm(a,b)=\prod_{i=1}^{n}pi^{max(ai,bi)}\)(0和任何…
梅森素数 定义: if m是一个正整数 and 2^m-1是一个素数 then m是素数 if m是一个正整数 and m是一个素数 then M(m)=2^m-1被称为第m个梅森数 if p是一个素数 and M(p)是一个素数 then M(p)被称为梅森素数 Lucas-Lehmer判定法:判定一个梅森数是否是梅森素数 设p是素数,第p个梅森数为M(p)为2^p-1,r1 = 4,对于k >= 2 r(k) = r(k+1)^2-2(modM(p)), 0 <= r(k) <= M…