博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2478:Farey Sequence
阅读量:6821 次
发布时间:2019-06-26

本文共 1022 字,大约阅读时间需要 3 分钟。

POJ 2478:Farey Sequence

题目链接:

题目大意:求$\sum_{i=2}^n \varphi(i)$.

线性筛

根据$\varphi(n)=n \prod_{i=1}^n(1- \frac{1}{p_i})$公式,可以在$O(n)$的复杂度下求出所有$\varphi(n)$的值.

同理,极性函数都可以用线性筛求得.

代码如下:

1 #include 
2 #define N 1000005 3 using namespace std; 4 typedef long long ll; 5 ll ver[N],pre[N],prime[N],k; 6 bool vis[N]={
1,1}; 7 void init(){ 8 for(int i=2;i<=1000000;++i){ 9 if(!vis[i]){10 prime[k++]=i;11 ver[i]=i-1;12 }13 for(int j=0;j
<=1000000;++j){14 vis[prime[j]*i]=1;15 if(i%prime[j]==0){16 ver[prime[j]*i]=ver[i]*prime[j];17 break;18 }19 ver[prime[j]*i]=ver[i]*(prime[j]-1);20 }21 }22 for(int i=1;i<=1000000;++i)23 pre[i]=pre[i-1]+ver[i];24 }25 int main(void){26 init();27 int n;28 while(scanf("%d",&n)){29 if(n==0)break;30 printf("%lld\n",pre[n]);31 }32 }

 

转载于:https://www.cnblogs.com/barrier/p/6919497.html

你可能感兴趣的文章
图解排序算法之快速排序-双端探测法
查看>>
mysql
查看>>
程序中的bug程度分析
查看>>
[算法][LeetCode] Dynamic Programming(DP)动态规划
查看>>
12.8 Nginx用户认证
查看>>
11月15日云栖精选夜读:分布式服务框架Dubbo疯狂更新!阿里开源要搞大事情?...
查看>>
跨链技术的分析和思考
查看>>
大数据(hadoop-HDFS原理分析)
查看>>
usermod命令 、用户密码管理、 mkpasswd命令
查看>>
一周第三次课
查看>>
日常运维(一)
查看>>
SAP数据中心概述
查看>>
Druid数据库连接池就这么简单
查看>>
比特币现金BCH 硬分叉,能否突破$1500?
查看>>
Python最假的库:Faker
查看>>
IDE 插件新版本发布,开发效率 “biu” 起来了
查看>>
基于OAS设计可扩展OpenAPI
查看>>
Java多线程与高并发:java.util.concurrent包
查看>>
阿里云安全肖力:安全基础建设是企业数字化转型的基石
查看>>
Redis 基础、高级特性与性能调优
查看>>