bzoj 2705 [SDOI2012]Longge的问题——欧拉函数大水题
2024-10-08 00:54:32
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2705
撕逼题。不就是枚举gcd==d,求和phi[ n/d ]么。
然后预处理sqrt (n)的阶乘,RE得不行。发现用到了大于sqrt (n)的阶乘。
然后翻看TJ。
发现phi可以现求!就用那个式子。我竟然都忘了!
注意最后剩下的一个大于sqrt (i)的质因数。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define ll long long
using namespace std;
const int N=1e5+;
ll ans,n;
ll phi(ll a)
{
ll ret=a;
for(ll i=;i*i<=a;i++)
if(a%i==)
{
ret=ret/i*(i-);
while(a%i==)a/=i;
}
if(a>)ret=ret/a*(a-);
return ret;
}
int main()
{
scanf("%lld",&n);
for(ll i=;i*i<=n;i++)
if(n%i==)
if(i!=n/i)ans+=i*phi(n/i)+(n/i)*phi(i);
else ans+=i*phi(n/i);
printf("%lld\n",ans);
return ;
}
最新文章
- NOIP2012同余方程
- 开源项目大全 >;>; ...
- OpenCV linux cmake添加使用
- linux应用程序地址布局,王明学learn
- [简介]HTML5 and CSS3
- 《点石成金-访客至上的web和移动可用性设计秘籍》读书笔记
- linux 软连接方式实现上传文件存储目录的无缝迁移
- 什么是优先级队列(priority queue)?
- endnote X7参考文献缩进设置
- tesseract ocr文字识别
- 我们一起学Docker(一)
- js继承的常用方法
- Python中的列表操作
- multiwan 系统配置补充
- MFC-注册热键
- unity音量设置(同时设置到多个物体上)——引伸语言设置
- 在R中运行Shell命令脚本(Call shell commands from R)
- HBase1.2.0增删改查Scala代码实现
- JS日期、月份的加减
- MySQL----MySQL数据库入门----第三章 添加、更新与删除数据
热门文章
- TableView之表头、表尾,区头、区尾!
- java编程题古典算法之兔子问题
- C# 把十六进制表示的ASCII码转换为对应的字符组成的字符串
- 搞了一宿,弄完了一个POP3协议
- mac版pycharm的字体和行间距设置
- Python3.5 安装 &; hello world
- #include <;filename.h>; 和 #include“filename.h” 有什么区别
- vim之buffer 与 折叠
- SpringMVC,3种不同的URL路由配置方法 [转]
- megacli在线raid构建详解(转载自用)