题目 求大数的欧拉函数φ\varphiφ 题解 Pollard-Rho 板子 CODE #pragma GCC optimize (3) #include <bits/stdc++.h> using namespace std; typedef long long LL; inline LL mul(LL a, LL b, LL p) { a=(a%p+p)%p, b=(b%p+p)%p; return (((a*b)-(LL)((long double)a*b/p)*p)%p+p)%p; }…
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4802 [题解] 参考:http://www.matrix67.com/blog/archives/234 Millar-Rabin质数检验方法: 根据费马小定理,如果p是素数,a<p,那么有a^(p-1) mod p = 1. 直观想法我们直接取若干个a,如果都有一个不满足,那么p就是合数. 遗憾的是,存在Carmichael数:你无论取多少个a,有一个不满足,算我输. 比如:561 =…
Description 已知N,求phi(N) Input 正整数N.N<=10^18 Output 输出phi(N) Sample Input 8 Sample Output 4 Solution 一开始读错题了……以为是求约束个数和…… 读对题之后然后发现我不会就问旁边的宽嫂…… 宽嫂:这不是欧拉函数的定义式么?我初中就会了啊. 我:…
啊居然要特判,卡了好久QAQ (好像Windows下的rand和Linux下的不一样? QwQ一些东西参考了喵铃的这篇blog:http://www.cnblogs.com/meowww/p/6400841.html  (业界良心) 题目 题意:输入$n$,求$phi(n)$,$n \leq 10^{18}$ 随便抽的题,刚好学习一下相关的算法. 很明显朴素的根号算法时间复杂度补滋兹,线性筛更不用想了,不过这题只需要单个欧拉函数值,还是直接考虑$phi(n)=n*\prod_{i=1}^k(1-…
bzoj description 给出\(n\),求\(\varphi(n)\).\(n\le10^{18}\) sol \(Pollard\ Rho\),存个代码. code #include<cstdio> #include<algorithm> #include<ctime> using namespace std; #define ll long long ll p[100],len; ll mul(ll x,ll y,ll mod){ x%=mod;y%=mo…
传送门 Pollard−rhoPollard-rhoPollard−rho模板题. 题意简述:求ϕ(n),n≤1e18\phi(n),n\le 1e18ϕ(n),n≤1e18 先把nnn用Pollard−rhoPollard-rhoPollard−rho分解质因数,然后就可以算了. 代码: #include<bits/stdc++.h> #include<tr1/unordered_map> #define ri register int using namespace std;…
原文链接http://www.cnblogs.com/zhouzhendong/p/8117744.html 题目传送门 - BZOJ4802 题意概括 Description 已知N,求phi(N) Input 正整数N.N<=10^18 题解 Miller_Rabin+Pollard_Rho 至于Pollard_Rho,我感到很奇怪.判定的时候为何不能丢第一个值!! 请看下面两个代码,第一个对的,第二个错的…… 代码 #include <cstring> #include <c…
找了一些曾经没提到的算法.这应该是数学基础系最后一篇. 曾经的文章: 数学基础I 莫比乌斯反演I 莫比乌斯反演II 数学基础II 生成函数 数学基础III 博弈论 容斥原理(hidden) 线性基(hidden) 卡特兰数/第二类斯特林数(hidden) 置换群(hidden) 莫比乌斯反演III(hidden) 线性筛(hidden) 欧拉函数 计算单个欧拉函数 设\(n\)的唯一分解为\(p_i\),则\(\varphi(n)=n\prod(1-\frac{1}{p_i})\). 奇偶性 \…
BZOJ_4802_欧拉函数_MR+pollard rho+欧拉函数 Description 已知N,求phi(N) Input 正整数N.N<=10^18 Output 输出phi(N) Sample Input 8 Sample Output 4 直接MR+Pollard rho分解质因数即可.具体可见https://www.cnblogs.com/suika/p/9127065.html 记得判重,我的map不知道为何T了.   代码: #include <cstdio> #inc…
[BZOJ4802]欧拉函数(Pollard_rho) 题面 BZOJ 题解 这么大的范围肯定不好杜教筛. 考虑欧拉函数的计算式,显然只需要把\(n\)分解就好了. 直接\(Pollard\_rho\) #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include&…