欧拉函数:

对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。

POJ 2407.Relatives-欧拉函数

代码O(sqrt(n)):

  1. ll euler(ll n){
  2. ll ans=n;
  3. for(int i=;i*i<=n;i++){ //这里i*i只是为了减少运算次数,直接i<=n也没错,
  4. if(n%i==){ //因为只有素因子才会加入公式运算。仔细想一下可以明白i*i的用意。
  5. ans=ans/i*(i-);
  6. while(n%i==)
  7. n/=i; //去掉倍数
  8. }
  9. }
  10. if(n>)
  11. ans=ans/n*(n-);
  12. return ans;
  13. }

欧拉线性筛素数

洛谷 P3383 【模板】线性筛素数-线性筛素数(欧拉筛素数)基础题贴个板子备忘

代码改了一点东西O(n):

  1. //线性筛法筛素数(欧拉筛法)
  2. #include<iostream>
  3. #include<cstdio>
  4. #include<cstring>
  5. #include<algorithm>
  6. #include<bitset>
  7. #include<cassert>
  8. #include<cctype>
  9. #include<cmath>
  10. #include<cstdlib>
  11. #include<ctime>
  12. #include<deque>
  13. #include<iomanip>
  14. #include<list>
  15. #include<map>
  16. #include<queue>
  17. #include<set>
  18. #include<stack>
  19. #include<vector>
  20. using namespace std;
  21. typedef long long ll;
  22.  
  23. const double PI=acos(-1.0);
  24. const double eps=1e-;
  25. const ll mod=1e9+;
  26. const int inf=0x3f3f3f3f;
  27. const int maxn=2e7+;
  28. const int maxm=+;
  29. #define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
  30.  
  31. bitset<maxn> is_prime;
  32. int p[maxn],h=;
  33.  
  34. void Prime(int n)
  35. {
  36. is_prime[]=;
  37. is_prime[]=;
  38. for(int i=;i<=n;++i){
  39. if(is_prime[i]==)
  40. p[++h]=i;
  41. for(int j=;j<=h&&p[j]*i<=n;++j){
  42. is_prime[i*p[j]]=;
  43. if(i%p[j]==)
  44. break;
  45. }
  46. }
  47. }
  48.  
  49. int main()
  50. {
  51. int n;
  52. scanf("%d",&n);
  53. Prime(n);
  54. for(int i=;i<=n;i++){
  55. cout<<i<<" ";
  56. cout<<p[i]<<" ";
  57. if(is_prime[i])
  58. printf("No\n");
  59. else
  60. printf("Yes\n");
  61. }
  62. return ;
  63. }

最后传送一下队友的博客:

欧拉函数总结

欧拉函数O(sqrt(n))与欧拉线性筛素数O(n)总结的更多相关文章

  1. POJ 2407.Relatives-欧拉函数O(sqrt(n))

    欧拉函数: 对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目. 对于一个正整数N的素数幂分解N=P1^q1*P2^q2*...*Pn^qn. Euler函数表达通式:euler(x)=x(1 ...

  2. [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉

    本文为博主原创文章,欢迎转载,请注明出处 www.cnblogs.com/yangyaojia [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉 题目大意 给定n,m,求在1到n!内与m!互质的 ...

  3. 洛谷 P3383 【模板】线性筛素数-线性筛素数(欧拉筛素数)O(n)基础题贴个板子备忘

    P3383 [模板]线性筛素数 题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范 ...

  4. 欧拉函数 &【POJ 2478】欧拉筛法

    通式: $\phi(x)=x(1-\frac{1}{p_1})(1-\frac{1}{p_2})(1-\frac{1}{p_3}) \cdots (1-\frac{1}{p_n})$ 若n是质数p的k ...

  5. 欧拉函数,打表求欧拉函数poj3090

    欧拉函数 φ(n) 定义:[1,N]中与N互质的数的个数 //互质与欧拉函数 /* 求欧拉函数 按欧拉函数计算公式,只要分解质因数即可 */ int phi(int n){ int ans=n; ;i ...

  6. 欧拉函数:HDU1787-GCD Again(欧拉函数的模板)

    GCD Again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  7. 欧拉筛法模板and 洛谷 P3383 【模板】线性筛素数(包括清北的一些方法)

    题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入格式 第一行包含两个正整数N.M,分别表示查询的范围和查询的个数. 接下来M行每行包含一个不小于1 ...

  8. 欧拉筛法模板&&P3383 【模板】线性筛素数

    我们先来看欧拉筛法 •为什么叫欧拉筛呢?这可能是跟欧拉有关 •但是为什么叫线性筛呢?因为它的复杂度是线性的,也就是O(n),我们直接来看代码   #include<cstdio> #inc ...

  9. 【BZOJ2186】[Sdoi2008]沙拉公主的困惑 线性筛素数

    [BZOJ2186][Sdoi2008]沙拉公主的困惑 Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M! ...

随机推荐

  1. DELPHI控件属性事件说明

    常用DELPHI控件属性事件设置说明 常用DELPHI控件属性设置说明目录TForm Class TPanel组件 TToolBar Class TToolButton Class TTimer Cl ...

  2. 【题解】WC2008游览计划

    写的第一道斯坦纳树的题目.斯坦纳树在信息学中的应用一般为:在\(n\)个点之间给定\(k\)条边并相应的边权,求在保证给定\(m\)个点联通的条件下的最小边权和.解决此类问题的方法即为SPFA + 状 ...

  3. [NOI2010]能量采集 解题报告

    [NOI2010]能量采集 题目描述 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. ...

  4. bzoj 1110 [POI2007]砝码Odw 贪心+进制转化

    [POI2007]砝码Odw Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 661  Solved: 366[Submit][Status][Disc ...

  5. selenium 获取某个元素的html

    <table> <tbody id="tb-37327761306"> <tr class="sep-row"><td ...

  6. C# windows application Hello World

    创建一个Windows application项目,然后可以调用里面的工具来生成代码. using System; using System.Collections.Generic; using Sy ...

  7. elemetUi 组件--el-upload

    [需求]实现上传Excel文件,在上传到服务器时,还要附加一个参数,在请求上传文件接口前,先要进行文件格式判断. [知识点] 1.el-upload 官方文档中,主要用到了以下属性: data 可选参 ...

  8. Eclipse Jetty调试时无法保存js文件

    Jetty会使用内存映射文件来缓存静态文件,包括js,css文件. 在Windows下,使用内存映射文件会导致文件被锁定,所以当Jetty启动的时候无法在编辑器对js或者css文件进行编辑. 解决办法 ...

  9. 【Foreign】置换 [数论][置换]

    置换 Time Limit: 10 Sec  Memory Limit: 256 MB Description Input Output Sample Input 4 2 1 4 3 Sample O ...

  10. [BZOJ2190&BZOJ2705]欧拉函数应用两例

    欧拉函数phi[n]是表示1~n中与n互质的数个数. 可以用公式phi[n]=n*(1-1/p1)*(1-1/p2)*(1-1/p3)...*(1-1/pk)来表示.(p为n的质因子) 求phi[p] ...