数论:欧拉函数
文章平均质量分 61
skajre
这个作者很懒,什么都没留下…
展开
-
POJ 2154 Color
#includeusing namespace std;int n,p;int euler(int x){ int ret=1; for(int i=2;i*i<=x;i++) { if(x%i==0) { x/=i;ret*=i-1; while(x%i==0) {x/=i;ret*=原创 2016-08-03 19:26:17 · 200 阅读 · 0 评论 -
素数欧拉函数同时筛和打表
如果欧拉函数单独算的话,那么先把素数存下来,再算欧拉函数会快一点,因为一个一个合数一定都质数组成,所以用素数来算欧拉函数会快一点,因为循环少一点。下面是欧拉函数打表且与筛素数同时做:const int maxn=50000+100;int is_prime[maxn],primes[maxn],phi[maxn];void euler_and_prime(){ int cnt原创 2016-08-03 19:59:11 · 232 阅读 · 0 评论 -
线性筛法筛素数
//// main.cpp// Richard//// Created by 邵金杰 on 16/8/1.// Copyright © 2016年 邵金杰. All rights reserved.//#includeusing namespace std;const int maxn=200000;int primes[maxn],is_prime[maxn]原创 2016-08-01 09:57:05 · 406 阅读 · 0 评论 -
欧拉函数
int euler(int n){ int ret=1; for(int i=2;i*i<=n;i++) { if(n%i==0){ n/=i;ret*=i-1; while(n%i==0){ n/=i;ret*=i; } } }原创 2016-08-01 13:37:12 · 164 阅读 · 0 评论 -
POJ 2407 Relatives
裸欧拉函数。//// main.cpp// Richard//// Created by 邵金杰 on 16/8/1.// Copyright © 2016年 邵金杰. All rights reserved.//#includeusing namespace std;int euler(int n){ int ret=1; for(int i原创 2016-08-01 13:54:39 · 204 阅读 · 0 评论 -
POJ 2689 Prime Distance
做素数方面的题目,最重要的是筛选,切记不要试除,很容易超时。这里用到二次筛选,并且区间长度为1e6这个信息点非常重要,可以在判断l~u之间的数的时候,符合的数减去l放进数组里,那样的话数组的大小也可以开,需要使用的时候拿出来加上l即可。//// main.cpp// Richard//// Created by 邵金杰 on 16/8/2.// Copyright © 2原创 2016-08-02 08:27:37 · 227 阅读 · 0 评论 -
POJ 2478 Farey Sequence
分母为x的既约真分数用欧拉函数算,因为欧拉函数的值为小于n且与n互素的数,然后遍历一遍,打表即可。//// main.cpp// Richard//// Created by 邵金杰 on 16/8/2.// Copyright © 2016年 邵金杰. All rights reserved.//#includeusing namespace std;typedef原创 2016-08-02 09:28:45 · 245 阅读 · 0 评论 -
POJ 3696 The Luckiest number
这是一道神题,不仅思路证明难,而且编码也难,花了我一天时间,各种证明,各种细节。首先题目给出一个L,求出L的每位数字都是8的倍数,那么就可以列这么一个方程(10^x-1)*8/9==0mod L;转化为(10^x-1)*8/9=kL==>(10^x-1)*8+9Lk=0;此时设d=gcd(9,L),p=8/d,q=L/d;则方程为(10^x-1)*p+9qk=0;所以可以列方程原创 2016-08-02 18:22:39 · 413 阅读 · 0 评论 -
欧拉函数总结
欧拉函数可以直接打表,时间复杂度为O(nlognlogn);int euler(int n){ int ret=1; for(int i=2;i*i<=n;i++) { if(n%i==0) { n/=i;ret*=i-1; while(n%i==0) {n/=i;ret*=i;}原创 2016-08-02 09:18:43 · 389 阅读 · 0 评论