[bzoj]P2705 OR [luogu]P2303

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。


注意到这些最大公约数肯定是n的约数,对于约数K,我们想找出gcd(n,i)=k的有多少个,也即gcd(n/k,i/k)=1,也就等价于求φ(n/k)。

ans=Σφ(n/k)*k

问题就在于怎么求φ(n),之前竟然一直不知道可以sqrt(n)计算,感觉自己好傻,今天学习了...(一直以为要用递推,不然就要写线性筛[神经病啊])

还有就是枚举sqrt(n)时注意k*k=n的情况,没判这种情况结果bzoj过了,luogu没过...很尴尬。

代码:

 //2017.10.31
 //math
 #include<iostream>
 #include<cstdio>
 #include<cstring>
 using namespace std;
 typedef long long ll ;
 inline ll read();
 namespace lys{
     ll n,ans;
     ll phi(ll x){
         int i;
         ll w=x,res=x;
         ;1LL*i*i<=w;i++){
             if(!(x%i)){
                 res=res*(i-)/i;
                 while(!(x%i)) x/=i;
             }
         }
         ) res=res*(x-)/x;
         return res ;
     }
     int main(){
         int i;
         n=read();
         ;1LL*i*i<=n;i++)
             if(!(n%i)){
                 ans+=phi(n/i)*i;
                 if(1LL*i*i!=n) ans+=phi(i)*(n/i);
             }
         printf("%lld\n",ans);
         ;
     }
 }
 int main(){
     lys::main();
     ;
 }
 inline ll read(){
     ll kk=,ff=;
     char c=getchar();
     '){
         ;
         c=getchar();
     }
     +c-',c=getchar();
     return kk*ff;
 }

[bzoj]2705: [SDOI2012]Longge的问题[数论][数学][欧拉函数][gcd]的更多相关文章

  1. BZOJ.2705.[SDOI2012]Longge的问题(莫比乌斯反演 欧拉函数)

    题目链接 \(Description\) 求\[\sum_{i=1}^n\gcd(i,n)\] \(Solution\) \[ \begin{aligned} \sum_{i=1}^n\gcd(i,n ...

  2. BZOJ 2705: [SDOI2012]Longge的问题( 数论 )

    T了一版....是因为我找质因数的姿势不对... 考虑n的每个因数对答案的贡献. 答案就是 ∑ d * phi(n / d) (d | n) 直接枚举n的因数然后求phi就行了. 但是我们可以做的更好 ...

  3. [bzoj 2705][SDOI2012]Longge的问题(数学)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2705 分析: 设k为n的因数 设f[k]为gcd(x,n)==k的x的个数,容易知道a ...

  4. hiho一下 第九十六周 数论五·欧拉函数

    题目1 : 数论五·欧拉函数 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho有时候会用密码写信来互相联系,他们用了一个很大的数当做密钥.小Hi和小Ho约定 ...

  5. hdu 1286:找新朋友(数论,欧拉函数)

    找新朋友 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  6. hihoCoder 数论五·欧拉函数

    题目1 : 数论五·欧拉函数 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho有时候会用密码写信来互相联系,他们用了一个很大的数当做密钥.小Hi和小Ho约定 ...

  7. Bzoj 2705: [SDOI2012]Longge的问题 欧拉函数,数论

    2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 1959  Solved: 1229[Submit][ ...

  8. BZOJ 2705: [SDOI2012]Longge的问题 [欧拉函数]

    2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 2553  Solved: 1565[Submit][ ...

  9. BZOJ 2705: [SDOI2012]Longge的问题

    2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 2554  Solved: 1566[Submit][ ...

随机推荐

  1. 打印一个浮点数组,会输出字符串"Hello, world“ & 浮点数的二进制表示(IEEE 754标准)

    #include <stdio.h> #include<stdlib.h> int main() { float a[3] = { 1143139122437582505939 ...

  2. jmeter函数介绍(1)

    1._Random() 随机数 The minimum value allowed for a range of values:输入一个最小值: The maximum value allowed f ...

  3. Django 基于角色的权限控制

    有一种场景, 要求为用户赋予一个角色, 基于角色(比如后管理员,总编, 编辑), 用户拥有相应的权限(比如管理员拥有所有权限, 总编可以增删改查, 编辑只能增改, 有些页面的按钮也只有某些角色才能查看 ...

  4. Scratch少儿编程系列:(四)脚本选项卡说明

    脚本选项卡下面主要包括:运动.事件.外观.控制.声音.侦测.画笔.运算.数据.更多积木. 一.运动:所谓运动,指的是角色的“运动”.如移动10步,右转15度,左转15度等. [注] 将“脚本”从选项卡 ...

  5. 如何在centos7中显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意字符的文件或目录

    ls /etc |grep "^[^[:alpha:]][[:alpha:]].*"

  6. Django 调试models 输出的SQL语句 定位查看结果

    django 调试models变得更为简单了,不用像之前的版本, 手工去调用django query, 才能打印出之前的代码是执行的什么SQL语句. 1.3开始只需在settings.py里,配置如下 ...

  7. 手摸手教你如何在 Python 编码中做到小细节大优化

    手摸手教你如何在 Python 编码中做到小细节大优化 在列表里计数 """ 在列表里计数,使用 Python 原生函数计数要快很多,所以尽量使用原生函数来计算. &qu ...

  8. 【nginx】上传文件error报413 Request Entity Too Large

    nginx配置增大上传文件限制 如果访问地址是通过nginx转发配置的 server{ ... ... client_max_body_size 50M; ... ... } ingress配置增大上 ...

  9. Postgresql重安装报错The database cluster initialisation failed.

    之前安装过PostgreSQL-9.6.5,卸载后,重装PostgreSQL-9.1.3版本,报错. 清除注册表,删除postgres账户,清除垃圾后,再次安装仍然报错. 最后改变默认安装路径,神奇的 ...

  10. 看完阮一峰的React教程后, 我写了一个TodoList

    看完阮一峰的React教程后,就自己做了这个TodoList,自己慢慢琢磨效率差了点但是作为入门小练习还是不错的. 以下是效果图:我的源码:todolistUI:bootstrap 4 一.组件化 我 ...