思路:

N=P*Q

求出来P和Q 模拟就好…

//By SiriusRen
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;
ll shai[10]={2,3,5,7,11,13,17,19,21,23};
ll mul(ll x,ll y,ll mod){
x%=mod;ll res=0;
while(y){
if(y&1)res=(x+res)%mod;
(x<<=1)%=mod,y>>=1;
}return res;
}
ll pow(ll x,ll y,ll mod){
x%=mod;ll res=1;
while(y){
if(y&1)res=mul(res,x,mod);
x=mul(x,x,mod),y>>=1;
}return res;
}
bool check(ll a,ll n,ll r,int s){
ll x=pow(a,r,n),pre=x;
for(int i=1;i<=s;i++){
x=mul(x,x,n);
if(x==1&&pre!=1&&pre!=n-1)return 0;
pre=x;
}return x==1;
}
bool miller_rabin(ll x){
if(x<=1)return 0;
ll r=x-1;int s=0;
while(!(r&1))r>>=1,s++;
for(int i=0;i<10;i++){
if(x==shai[i])return 1;
if(!check(shai[i],x,r,s))return 0;
}return 1;
}
ll gcd(ll x,ll y){return y?gcd(y,x%y):x;}
ll prime_factor(ll n,ll c){
ll k=2,x=rand()%n,y=x,p=1;
for(int i=1;p==1;i++){
x=(mul(x,x,n)+c)%n;
p=gcd(abs(x-y),n);
if(i==k)y=x,k<<=1;
}return p;
}
ll P,Q,R,E,N,C,X,Y;
void pollard_rho(ll x){
if(x==1)return;
if(miller_rabin(x)){P=x;return;}
ll p=x;
while(p==x)p=prime_factor(x,rand()%(x-1));
pollard_rho(p),pollard_rho(x/p);
}
ll exgcd(ll a,ll b,ll &x,ll &y){
if(!b)x=1,y=0;
else exgcd(b,a%b,y,x),y-=x*(a/b);
}
int main(){
scanf("%lld%lld%lld",&E,&N,&C);
pollard_rho(N),Q=N/P,R=(P-1)*(Q-1);
exgcd(E,R,X,Y),X=(X+R)%R;
printf("%lld %lld\n",X,pow(C,X,N));
}

BZOJ 4522 Pollard-rho+exgcd的更多相关文章

  1. Pollard rho算法+Miller Rabin算法 BZOJ 3668 Rabin-Miller算法

    BZOJ 3667: Rabin-Miller算法 Time Limit: 60 Sec  Memory Limit: 512 MBSubmit: 1044  Solved: 322[Submit][ ...

  2. 【Luogu】P4358密钥破解(Pollard Rho)

    题目链接 容易发现如果我们求出p和q这题就差不多快变成一个sb题了. 于是我们就用Pollard Rho算法进行大数分解. 至于这个算法的原理,emmm 其实也不是很清楚啦 #include<c ...

  3. Miller-Rabin 素性测试 与 Pollard Rho 大整数分解

    \(\\\) Miller-Rabin 素性测试 考虑如何检验一个数字是否为素数. 经典的试除法复杂度 \(O(\sqrt N)\) 适用于询问 \(N\le 10^{16}\) 的时候. 如果我们要 ...

  4. POJ 1811 Prime Test (Pollard rho 大整数分解)

    题意:给出一个N,若N为素数,输出Prime.若为合数,输出最小的素因子.思路:Pollard rho大整数分解,模板题 #include <iostream> #include < ...

  5. 整数(质因子)分解(Pollard rho大整数分解)

    整数分解,又称质因子分解.在数学中,整数分解问题是指:给出一个正整数,将其写成几个素数的乘积的形式. (每个合数都可以写成几个质数相乘的形式,这几个质数就都叫做这个合数的质因数.) .试除法(适用于范 ...

  6. Pollard Rho因子分解算法

    有一类问题,要求我们将一个正整数x,分解为两个非平凡因子(平凡因子为1与x)的乘积x=ab. 显然我们需要先检测x是否为素数(如果是素数将无解),可以使用Miller-Rabin算法来进行测试. Po ...

  7. 初学Pollard Rho算法

    前言 \(Pollard\ Rho\)是一个著名的大数质因数分解算法,它的实现基于一个神奇的算法:\(MillerRabin\)素数测试(关于\(MillerRabin\),可以参考这篇博客:初学Mi ...

  8. BZOJ_4802_欧拉函数_MR+pollard rho+欧拉函数

    BZOJ_4802_欧拉函数_MR+pollard rho+欧拉函数 Description 已知N,求phi(N) Input 正整数N.N<=10^18 Output 输出phi(N) Sa ...

  9. BZOJ_3667_Rabin-Miller算法_Mille_Rabin+Pollard rho

    BZOJ_3667_Rabin-Miller算法_Mille_Rabin+Pollard rho Description Input 第一行:CAS,代表数据组数(不大于350),以下CAS行,每行一 ...

  10. 浅谈 Miller-Robbin 与 Pollard Rho

    前言 $Miller-Robbin$ 与 $Pollard Rho$ 虽然都是随机算法,不过用起来是真的爽. $Miller Rabin$ 算法是一种高效的质数判断方法.虽然是一种不确定的质数判断法, ...

随机推荐

  1. 互联网的大数据神话——NoSQL

    本文摘抄于:<纵横大数据--云计算数据基础设施> 何小朝著 Chapter5. NewSQL--关系数据库联邦/联合 5.4.2  互联网的神话 对强一致性的要求放松,是因为 互联网的分布 ...

  2. 杭电 1021 Fibonacci Again

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1021 解题思路:根据之前发现斐波那契数列的规律,即为f(n)能被3整除当且仅当n能被4整除. 于是联想 ...

  3. 初步学习Axure---整理了一下自己两周的学习成果:动态面板

    自己无意间发现了做原型设计的工具--Axure,所以就自学了一点皮毛.最近时间比较充裕,就把自己现学现卖的东西整一整. 作品比较简单,没有技术可言,根据用户和开发需求,利用动态面板和一些点击事件完成了 ...

  4. RabbitMQ学习之Flow Control

    当RabbitMQ发布消息速度快于消费速度或者系统资源不足时,RabbitMQ将降低或阻断发布消息速度,以免服务器资源饱满而宕机,可以通过rabbitmqctl和web管理页面查看连接的状态为flow ...

  5. 如何在vue里面正确的引用 jquery 和 第三方插件

    vue-cli webpack全局引入jquery(jq通过npm安装的并非本地文件) 1.首先在package.json里加入, dependencies:{ "jquery" ...

  6. css3小叮当(转载)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. tsar源码分析

    从modules/mod_cpu.c入手 ./devel/tsar.h module 结构体: struct module { char name[LEN_32]; char opt_line[LEN ...

  8. Codeforces Round #468 (Div. 2, based on Technocup 2018 Final Round)D. Peculiar apple-tree

    In Arcady's garden there grows a peculiar apple-tree that fruits one time per year. Its peculiarity ...

  9. 当li设置为line-block时,元素之间出现间隙的原因和解决方法

    原因 因为浏览器默认把inline元素之间的空白符(Tab.空格.换行)渲染成一个空格.而如下述代码,两个li元素之间的换行符被渲染成一个空格,则元素之间产生了间隙. 用Chrome浏览器将场景模拟出 ...

  10. P1421 小玉买文具

    ... 题目描述 班主任给小玉一个任务,到文具店里买尽量多的签字笔.已知一只签字笔的价格是1元9角,而班主任给小玉的钱是a元b角,小玉想知道,她最多能买多少只签字笔呢. 输入输出格式 输入格式: 输入 ...