[ Pollard_rho ] BZOJ4802
来源:互联网 发布:linux分屏显示命令 编辑:程序博客网 时间:2024/06/05 14:32
模板题
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define ll long longll n,a[70],Ans;int i,j,k,m,c;inline ll mul(ll x,ll y,ll z){ ll Ans=0; for(;y;y>>=1,x=(x<<1)%z)if(y&1)Ans=(Ans+x)%z; return Ans;}inline ll Pow(ll x,ll y,ll z){ ll Ans=1; for(;y;y>>=1,x=mul(x,x,z)) if(y&1)Ans=mul(Ans,x,z); return Ans;}inline ll Rand(ll n){ return ((double)rand()/RAND_MAX*n+0.5);}inline bool Check(ll a,ll n){ ll t=n-1; int s=0; while(!(t&1))t>>=1,s++; ll x=Pow(a,t,n),y=x; while(s--){ x=mul(x,x,n); if(x==1&&y!=1&&y!=n-1)return 1; y=x; } return (x!=1);}inline bool MR(ll n){ if(n==2)return 1; if(n<2||!(n%2))return 0; for(int i=1;i<=10;i++) if(Check(Rand(n-2)+1,n))return 0; return 1;}inline ll Gcd(ll x,ll y){ return y?Gcd(y,x%y):x;}inline ll Pollard_rho(ll n,ll c){ ll i=1,k=2; ll x=Rand(n-1)+1; ll y=x; while(1){ x=(mul(x,x,n)+c)%n; ll d=Gcd((y-x+n)%n,n); if(d>1&&d<n)return d; if(x==y)return n; if(++i==k)y=x,k<<=1; }}inline void Find(ll n,ll c){ if(n==1)return; if(MR(n)){ a[++m]=n; return; } ll t=n,k=c; while(t==n)t=Pollard_rho(t,c--); Find(t,k);Find(n/t,k);}int main(){ srand(23333333); cin>>n; Find(n,150); sort(a+1,a+m+1);m=unique(a+1,a+m+1)-a-1; Ans=n; for(i=1;i<=m;i++)Ans=Ans/a[i]*(a[i]-1); cout<<Ans<<endl; return 0;}
阅读全文
0 0
- [ Pollard_rho ] BZOJ4802
- bzoj4802: 欧拉函数
- bzoj4802: 欧拉函数
- bzoj4802 欧拉函数
- BZOJ4802: 欧拉函数 pollard_pho
- [ Pollard_rho ] BZOJ4522
- POJ 1811 Miller_Rabin+Pollard_Rho
- poj1811 Millar_Rabin+Pollard_rho
- Miller-Rabin和Pollard_rho
- miller-rabin,Pollard_rho算法
- 【poj1811】Miller_Rabin and Pollard_rho
- Miller_Rabin和Pollard_Rho算法
- 大数分解Pollard_rho模板
- pollard_rho大数分解Java版
- 模板,pollard_rho大数因数分解
- poj 2429 Pollard_rho大数分解
- 快速分解质因数,Miller_Rabin+Pollard_rho
- pollard_rho(大数质因子分解)
- C#删除文件夹
- Hibernate 框架的搭建及简单介绍
- 微信开放平台 redirect_uri参数错误
- iOS一行代码移除子视图,或者layer。iOS获取近八天日期数组
- windows下批处理删除文件及注册表项
- [ Pollard_rho ] BZOJ4802
- free看内存使用,ps看系统进程,netstat查看网络,tcpdump抓包
- 如何做好一个让领导欣赏的下属
- 机器学习第一周复习
- Java版本(体系)介绍
- 【PhotoShop】【ARkit】3d模型单独渲染阴影的一种方法给ARKIT用
- Qt mingw:file not recognized: File truncated collect2.exe:-1: error: error: ld returned 1 exit statu
- python: pyenv 指令备忘录
- JAVA怎样理解面向对象