当前位置:网站首页>分子个数 数论(欧拉函数 前缀和
分子个数 数论(欧拉函数 前缀和
2022-08-03 23:58:00 【Rachel caramel】
题面:
思路:
题目的意思其实就是求 欧拉函数的前缀和
∑ i = 2 d ∑ j = 1 j = i − 1 [ gcd ( j , i ) = 1 ] 注: [ gcd ( j , i ) = 1 ] 的含义为: 若 gcd ( j , i ) = 1 , [ gcd ( j , i ) = 1 ] = 1 若 gcd ( j , i ) ≠ 1 , [ gcd ( j , i ) = 1 ] = 0 \sum_{i=2}^{d} \sum_{j=1}^{j=i-1}[\gcd(j,i)=1]\\ \text{注:}[\gcd(j,i)=1] \text{的含义为:}\\ \text{若}\gcd(j,i)=1,[\gcd(j,i)=1]=1\\ \text{若}\gcd(j,i)\not=1,[\gcd(j,i)=1]=0\\ i=2∑dj=1∑j=i−1[gcd(j,i)=1]注:[gcd(j,i)=1]的含义为:若gcd(j,i)=1,[gcd(j,i)=1]=1若gcd(j,i)=1,[gcd(j,i)=1]=0
欧拉函数的各种推导可见欧拉函数总结
代码:
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
const int maxn=111111;
int d;
long long ans,phi[maxn];
void handle(int n)
{
for(int i=1;i<=n;i++) phi[i]=i;
for(int i=2;i<=n;i++)
{
if(phi[i]==i)
{
for(int j=i;j<=n;j+=i) phi[j]=phi[j]-phi[j]/i;
}
}
}
int main()
{
scanf("%d",&d);
handle(d);
for(int i=2;i<=d;i++) ans+=phi[i];
printf("%lld\n",ans);
return 0;
}
边栏推荐
猜你喜欢
YOLOv7改进之二十二:涨点神器——引入递归门控卷积(gnConv)
2022-08-03:以下go语言代码输出什么?A:2;B:3;C:1;D:0。 package main import “fmt“ func main() { slice := []i
分布式事务框架 seata
BioVendor人Clara细胞蛋白(CC16)Elisa试剂盒检测步骤
(PC+WAP)织梦模板不锈钢类网站
用栈实现队列
V8中的快慢数组(附源码、图文更易理解)
Jmeter-参数化
689. 三个无重叠子数组的最大和
It will invest about 200 billion US dollars in the United States in 20 years, and Samsung Electronics looks so handsome
随机推荐
(PC+WAP)织梦模板螺钉手柄类网站
Install third-party packages via whl
1067 Sort with Swap(0, i)
internship:编写excel表的上传方法(导入)
分布式事务框架 seata
Salesforce's China business may see new changes, rumors may be closing
SolidEdge ST8安装教程
跨域的学习
状态机实验
LeetCode 19:删除链表的倒数第 N 个结点
Jmeter-断言
MCS-51单片机,定时1分钟,汇编程序
小身材有大作用——光模块基础知识(一)
LeetCode 0155. 最小栈
Creo 9.0在草图环境中创建坐标系
In V8 how arrays (with source code, picture and text easier to understand)
Justin Sun was invited to attend the 36氪 Yuan Universe Summit and delivered a keynote speech
伦敦银最新均线分析系统怎么操作?
利用matlab求解线性优化问题【基于matlab的动力学模型学习笔记_11】
V8中的快慢数组(附源码、图文更易理解)