[SDOI 2012]Longge的问题

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。

题解

求 $$\sum_{i = 1}^N gcd(i, N)$$

用惯用的套路我们枚举 $N$ 的因子  $$\sum_{d \mid N} d \cdot \sum_{i = 1}^{\left\lfloor \frac{N}{d} \right\rfloor} \left[gcd \left(\left\lfloor \frac{N}{d} \right\rfloor, i \right) = 1\right]$$

化简为 $$\sum_{d \mid N} d \cdot \varphi \left(\left\lfloor \frac{N}{d} \right\rfloor \right)$$

欧拉函数直接用 $\varphi(n) = n \cdot \prod_{i = 1}^k \left(1-\frac{1}{p_i} \right)$ 来求。

 1 //It is made by Awson on 2018.1.12
 2 #include <set>
 3 #include <map>
 4 #include <cmath>
 5 #include <ctime>
 6 #include <queue>
 7 #include <stack>
 8 #include <cstdio>
 9 #include <string>
10 #include <vector>
11 #include <cstdlib>
12 #include <cstring>
13 #include <iostream>
14 #include <algorithm>
15 #define LL long long
16 #define Max(a, b) ((a) > (b) ? (a) : (b))
17 #define Min(a, b) ((a) < (b) ? (a) : (b))
18 #define Swap(a, b) ((a) ^= (b), (b) ^= (a), (a) ^= (b))
19 using namespace std;
20 void read(LL &x) {
21     char ch; bool flag = 0;
22     for (ch = getchar(); !isdigit(ch) && ((flag |= (ch == ‘-‘)) || 1); ch = getchar());
23     for (x = 0; isdigit(ch); x = (x<<1)+(x<<3)+ch-48, ch = getchar());
24     x *= 1-2*flag;
25 }
26 void write(LL x) {
27     if (x > 9) write(x/10);
28     putchar(x%10+48);
29 }
30
31 LL n, m, ans;
32
33 LL phi(LL x) {
34     LL ans = x;
35     for (LL i = 2; i <= m; i++) {
36     if (x%i) continue;
37     ans = ans*(i-1)/i;
38     while (!(x%i)) x /= i;
39     }
40     if (x > 1) ans = ans*(x-1)/x;
41     return ans;
42 }
43 void work() {
44     read(n); m = sqrt(n);
45     for (LL i = 1; i <= m; i++) {
46     if (n%i) continue;
47     ans += i*phi(n/i);
48     if (i*i < n) ans += n/i*phi(i);
49     }
50     write(ans);
51 }
52 int main() {
53     work();
54     return 0;
55 }

原文地址:https://www.cnblogs.com/NaVi-Awson/p/8276082.html

时间: 2024-10-06 00:22:17

[SDOI 2012]Longge的问题的相关文章

[BZOJ 2705][SDOI 2012]Longge的问题(欧拉函数)

题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2705 网上的题解都不是很靠谱,我就来YY下自己的思路吧... 首先,对于1<=i<=N,gcd(i,N)的可能性解就是N的约数.那么这个题就是求Σgcd(i,N)=k,k是n的因数,等价于求Σgcd(i/k,N/k)=gcd(i',N/k)=1,即找出所有与N/k互质且小于等于N/k的i'的个数,这就转化到求欧拉函数的问题上来了. 所以这个题的做法是,sqrt(N)复杂度内枚举

一类欧拉函数相关的求和式推导

\(\\\) 写在前面 因为最近做了不少和欧拉函数相关的求和问题,而这一类求和的推导有没有涉及到反演和卷积,所以单独写一写. 给出的题目顺序与难度大致无关,是按照个人做题的顺序安排的. 再次声明欧拉函数的定义:\(\varphi(x)\) 表示 \([1,x]\) 里的所有整数中,与 \(x\) 互质的数的个数. 下面的叙述中均用 \((x,y)\) 表示 \(gcd(x,y)\) ,用 \([x,y]\) 表示 \(lcm(x,y)\) . \(\\\) 欧拉函数的两种常用求法 公式法,单点复

【欧拉函数】BZOJ2705: [SDOI2012]Longge的问题

Description Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). Solution 如果我们考虑每个gcd的贡献 那么k作为约数的贡献就是k*phi(n/k) 于是只需要枚举约数计算phi就行了 然而这好像是暴力=v= 然而约数也不可能很多 这么打也非常快 考虑phi函数计算 感觉可以考虑pi的贡献 然而我并是理不太清于是弃疗了 官方题解的确是这样:http://www.cnblogs.

解决 U盘安装Windows Server 2012 R2 报错

报错原因: 使用UltraISO刻录镜像时会更改U盘的文件格式为FAT32, 而Server 2012 R2的安装文件install.wim为5G多,故安装失败. 解决方法: 1.按照正常的方法刻录镜像到U盘: 2.更改U盘文件系统: 进入命令行模式,输入 convert f: /fs:NTFS (F盘为我的U盘所在盘符) 3.把install.wim重新拷贝到U盘对应目录

Windows Server 2012配置L2TP服务环境

在上一篇文章<Windows Server 2012配置VPN服务环境>中讲解了在Windows Server2012环境中的基础VPN搭建,但是只能支持PPTP的VPN连接.这篇文章进一步完善了VPN基于L2TP的连接讲解. 在百度上也没有找到一个Windows2012 很全的L2TP服务搭建的方案,所以自己编辑了一个给有需要的朋友们参考. 准备环境:Windows Server 2012R2 数据中心版64位,基础的VPN服务环境已经搭建完成. 功能需求:完善VPN服务器来支持L2TP类型

VmWare平台Windows Server 2012 无响应宕机

我们生产服务器都部署在VMware ESXi 5.5平台上,最近大半年的时间,偶尔就会出现操作系统为Windows Servre 2012的服务器出现没有任何响应(unresponsive)的情况,出现问题的时候,服务器有下面一些现象: 1: 应用程序无法访问SQL Server数据库,使用Microsoft SQL Server Management Sutdio去测试连接数据库,也会返回连接错误. 2: 网络有时候能Ping通,有时候是Ping不通的情况. 3: 远程连接无法访问服务器,从V

SQL Server 2012 案例教程(贾祥素)——学习笔记

第2章 SQL Server 2012概述 1.SQL(Structed Query Language),结构化查询语言. 2.SSMS(SQL Server Mangement Studio),SQL Server 2012的操作环境. 3.连接SQL Server之前应先启动SQL Server服务,即SQL Server(MSSQLSERVER): 方法1 开始--所有程序--Microsoft SQL Server 2012--配置工具--SQL Server配置管理器. 方法2 控制面

SqlServer 2012 FileTable 文件表

SQL Server 2012 提供一种特殊的"文件表",也称为"FileTable". FileTable 是一种专用的用户表,它包含存储 FILESTREAM 数据的预定义架构以及文件和目录层次结构信息.文件属性.FileTable 功能为 SQL Server 中存储的文件数据提供对 Windows 文件命名空间的支持以及与 Windows 应用程序的兼容性支持.即可以在 SQL Server 中将文件和文档存储在称作 FileTable 的特别的表中,但是从

atitit.Windows Server 2003 2008 2012系统的新特性 attilax 总结

atitit.Windows Server 2003  2008  2012系统的新特性 attilax 总结 1. Windows Server 2008 新特性也可以归纳为4个方面. 1 2. 相比Windows Server 08,R2 2 3. win 2012  新特性 2 4. 参考 6 1. Windows Server 2008 新特性也可以归纳为4个方面. 即将发布的Windows Server 2008是企业级的应用平台,可以为CRM等企业级应用提供更好更强的支撑,其新特性也