Longge的问题(bzoj 2705)
2024-10-16 06:43:44
Description
Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题。现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N)。
Input
一个整数,为N。
Output
一个整数,为所求的答案。
Sample Input
6
Sample Output
15
HINT
【数据范围】
对于60%的数据,0<N<=2^16。
对于100%的数据,0<N<=2^32。
/*
想了很长时间,实在没想出怎么做。
正解貌似很简单,设k=gcd(i,n),那么1=gcd(i/k,n/k),那么如果我们知道了K,可以用欧拉函数解出i的个数,把所有i的个数加起来就行了,
至于枚举K,就是枚举n的因数。
*/
#include<cstdio>
#include<iostream>
#define lon long long
using namespace std;
lon n,ans;
lon oula(lon x){
lon res=x,a=x;
for(lon i=;i*i<=a;i++){
if(a%i==){
res-=res/i;//res=res*(1-1/i)
while(a%i==) a/=i;
}
}
if(a>) res-=res/a;
return res;
}
int main(){
cin>>n;
for(lon i=;i*i<=n;i++){
if(n%i) continue;
ans+=oula(n/i)*i;
if(i*i!=n) ans+=oula(i)*(n/i);
}
cout<<ans;
}
最新文章
- C 标准库系列之locale.h
- UVALive 6255 Kingdoms --状态搜索
- C语言学习笔记 -冒泡排序
- Jessica&#39;s Reading Problem
- Nginx、LVS及HAProxy负载均衡软件的优缺点详解
- css3的loadding效果
- YouKu iOS笔试题一
- 编程思想之——";人是活的,程序是死的";
- Python中类的方法属性与方法属性的动态绑定
- 分享一个低配VPS下运行的mysql配置文件
- FreeMarker 快速入门
- 【KMP模板】简单写个KMP~
- Python selenium 一个节点两个关联input
- MysqL主主复制_模式之日志点复制
- 初识JavaScript闭包
- python3 模拟鼠标和键盘操作
- sqlserver 存储过程返回游标的处理
- puppeteer新手遇到的坑
- Linux记录-分区(df/fdisk/mount/umount/fuser)
- Kubernetes之解决从k8s.gcr.io拉取镜像失败问题
热门文章
- MFC技术积累——基于MFC对话框类的那些事儿3
- (转)MyBatis框架的学习(二)——MyBatis架构与入门
- 一个小笔记(5):A*算法
- CPP-基础:函数指针,指针函数,指针数组
- IE(IE6/IE7/IE8)支持HTML5标签--20150216
- str.format输出乱码
- 【线段树】uoj#228. 基础数据结构练习题
- 【网络流】[USACO4.2]草地排水Drainage Ditches
- (36)zabbix Maintenance维护周期
- Linux-MySQL基本命令-SQL语句