欧拉线性筛
来源:互联网 发布:获取svn数据java接口 编辑:程序博客网 时间:2024/06/06 15:44
对于线性筛素数的增添,可以同时求出每个数的欧拉函数
首先需要三个性质
证明链接(转)
性质一:若p为质数,phi[p]=p-1(显然)
性质二:若 i mod p=0(p为质数),那么有phi[i*p]=p*phi[i]
性质三:若 i mod p≠0(p为质数),那么phi[i*p]=phi[i]*(p-1)
#include <cstdio>#include <iostream>using namespace std;const int N=40000;int phi[N+10],prime[N+10];int tot,ans;int mark[N+10];void getphi(){ phi[1]=1; for(int i=2;i<=N;i++) { if(!mark[i]) { prime[++tot]=i; phi[i]=i-1;//性质1 } for(int j=1;j<=tot&&i*prime[j]<=N;j++) { mark[i*prime[j]]=1; if(!(i%prime[j])) { phi[i*prime[j]]=phi[i]*prime[j];//性质2 break; } else phi[i*prime[j]]=phi[i]*(prime[j]-1);//性质3 } }}int main(){ getphi(); printf("%d",phi[8]);//1,3,5,7与8互质 return 0;}
阅读全文
1 0
- 欧拉线性筛
- 欧拉线性筛质数(线性)
- BZOJ2005 欧拉线性筛
- 欧拉线性筛模板
- 欧拉函数线性筛法详解
- 欧拉线性筛求质数
- 欧拉函数 线性筛法
- 欧拉筛(线性筛)& 欧拉函数
- bzoj 2190 欧拉函数线性筛
- [笔记]: 欧拉函数线性筛法
- 线性筛素数and欧拉函数
- 线性筛法与欧拉函数
- 【欧拉函数+线性筛】bzoj2818: Gcd
- bzoj2190 仪仗队【欧拉函数+线性筛】
- 线性筛选欧拉函数
- 欧拉线性筛法求素数
- poj 2478【线性筛素数+欧拉函数】
- 线性时间内筛素数和欧拉函数
- Java基础知识 四 集合
- [BZOJ4868][Shoi2017]期末考试
- Java基础
- 线性筛素数
- 使用Vue.js和Laravel构建的开源博客。
- 欧拉线性筛
- PHP7革新与性能优化
- MCI接口实现音频左右声道控制
- 推荐:openinstall让用户提前一步体验你的App核心功能
- vue.js豆瓣书网站
- html5桌面提醒功能(浏览器支持的不好)
- Ubuntu国内可用sources.list
- Java 动态代理
- jfinal框架文件下载功能代码