当前位置: 首页 > news >正文

筛法求欧拉函数

筛法求欧拉函数

给定一个正整数 n,求 1∼n中每个数的欧拉函数之和。
输入格式
共一行,包含一个整数 n。
输出格式
共一行,包含一个整数,表示 1∼n中每个数的欧拉函数之和。
数据范围
1≤n≤106
输入样例:
6
输出样例:
12

#include<iostream>
#include<algorithm>using namespace std;typedef long long ll;const int N = 1000010;int primes[N],cnt;
int phi[N];
bool st[N];ll get_eulers(int n){phi[1] = 1;for(int i=2;i<=n;i++){//线性筛法if(!st[i]){//i为质数primes[cnt++] = i;phi[i] = i-1;//和i互质的数的个数            }for(int j=0;primes[j]<=n/i;j++){st[primes[j]*i] = true;if(i%primes[j]==0){ phi[primes[j]*i] = primes[j] * phi[i];//推导出phi的一般情况,i是以primes为质数的倍数    break;}phi[primes[j]*i] = phi[i] * (primes[j]-1);}}ll res=0;for(int i=1;i<=n;i++) res+=phi[i];return res;
}int main(){int n;cin>>n;cout<<get_eulers(n)<<endl;return 0;
}

http://www.mrgr.cn/news/7250.html

相关文章:

  • 设计模式-状态模式
  • SFF806A-ASEMI无人机专用SFF806A
  • 14:00面试,14:06就出来了,问的问题有点变态。。。
  • getchar(),putchar(),EOF的详细解释
  • Gameplay Ability System(事件通知)
  • ArkTS---HAR
  • DAY52
  • 货车制造5G智能工厂工业物联数字孪生平台,推进制造业数字化转型
  • 设计模式-1 概念 创建型模式
  • 求数组中出现次数超过一半的数字
  • Nacos微服务注册管理中心与服务通信
  • 驱动 day1 --内核的编译
  • 玩客云刷机armbian后docker启动不起来,提示bpf_prog_query(BPF_CGROUP_DEVICE) failed
  • 深入理解HTML中的script defer属性
  • oracle 如果是多条插入语句用begin end 快还是一条一条插入快?
  • 大数据开发工程师面试整理-如何处理紧急的生产环境问题?
  • 卓越测试工程师必备:团队协作的艺术
  • “双指针”算法下篇
  • STM32 HAL SDADC DMA
  • Deepin【2】:Deepin系统盘扩容