详见代码:

#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;// 给定一个数N,求1-N的所有数与这个数的gcd之和
// 观察gcd函数,我们可以得知那些与N互质的数的gcd一定为1,也就是欧拉函数
// 那么那些不互质的数有gcd(x, N) = d
// 也就是gcd(x/d, N/d) = 1,所以我们继续求N/d的欧拉函数就可以了 int eular(int x) { // 直接对某一个数进行素因子分解求解 int ret = 1;for (int i = 2; i <= (int)sqrt(double(x)); ++i) {if (x % i == 0) {ret *= i-1;x /= i;while (x % i == 0) {ret *= i;x /= i;}}}if (x != 1) {ret *= x-1;}return ret;
}int main() {int N;long long ret;while(scanf("%d", &N) == 1) {ret = 1LL * eular(N) + N; // 统计出所有互质的数以及这个数本身for (int i = 2; i <= (int)sqrt(double(N)); ++i) {// 枚举出所有的因子 if (N % i == 0) { // 枚举所有的因子 if (i * i == N)    {ret += 1LL * eular(i) * i;} else {ret += 1LL * eular(i) * (N/i);ret += 1LL * eular(N/i) * i;}}}printf("%lld\n", ret);}return 0;
}

转载于:https://www.cnblogs.com/Lyush/archive/2013/01/04/2844827.html

POJ-2480 Longge's problem 欧拉函数相关推荐

  1. POJ - 2480 Longge's problem(欧拉函数+唯一分解定理)

    题目链接:点击查看 题目大意:给出一个n,求 题目分析:因为N到了二的三十二次方,所以直接暴力肯定会T,这里介绍两种方法,都可以做实现这个题目 首先我们需要转化一下这个题目,先说一下优化过后的暴力枚举 ...

  2. poj 3090 amp;amp; poj 2478(法雷级数,欧拉函数)

    http://poj.org/problem?id=3090 法雷级数 法雷级数的递推公式非常easy:f[1] = 2; f[i] = f[i-1]+phi[i]. 该题是法雷级数的变形吧,答案是2 ...

  3. BZOJ2705 [SDOI2012]Longge的问题 欧拉函数

    Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 3874  Solved: 2469 [Submit][Status][Discuss] Descrip ...

  4. 【bzoj2705】[SDOI2012]Longge的问题 欧拉函数

    题目描述 Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). 输入 一个整数,为N. 输出 ...

  5. POJ - 1284 Primitive Roots(原根+欧拉函数)

    题目链接:点击查看 题目大意:给出一个模数 p ,求 p 有多少个原根 题目分析:算是补充了一个知识点吧,模数 p 的原根个数为 p[ p[ n ] ] ,p 为欧拉函数 证明博客:https://b ...

  6. Relatives POJ - 2407(不打表的欧拉函数 单求)

    Relatives POJ - 2407 题目链接:https://vjudge.net/problem/POJ-2407#author=0 题目: 给定n是一个正整数,有多少正整数小于n是n的相对素 ...

  7. POJ 2480 Longge#39;s problem 积性函数

    题目来源:POJ 2480 Longge's problem 题意:求i从1到n的gcd(n, i)的和 思路:首先假设m, n 互质 gcd(i, n*m) = gcd(i, n)*gcd(i, m ...

  8. POJ 2480 (约数+欧拉函数)

    题目链接: http://poj.org/problem?id=2480 题目大意:求Σgcd(i,n). 解题思路: 如果i与n互质,gcd(i,n)=1,且总和=欧拉函数phi(n). 如果i与n ...

  9. poj 2480 (欧拉函数应用)

    点击打开链接 //求SUM(gcd(i,n), 1<=i<=n) /*g(n)=gcd(i,n),根据积性定义g(mn)=g(m)*g(n)(gcd(m,n)==1)所以gcd(i,n)是 ...

最新文章

  1. Qt中文手册 之 QTreeWidget
  2. devops和docker_通过免费的2小时Docker课程学习DevOps基础知识
  3. 深入浅出 Redis client/server交互流程
  4. xmemcached发布1.3.4
  5. cmd常见错误及解决方法
  6. Android 绿豆通讯录【SQLite数据库---数据库(增删改查、展示数据)】
  7. Maven学习笔记(2) --mvn archetype:create 说明
  8. build tut framework on ubuntu
  9. FRR BGP协议分析10 -- 路由衰减
  10. npm:no such file /usr/local/lib/node_modules/vue-cli/node_modules/get-stream
  11. jsp % % ! 区别
  12. php srs api,文档中心
  13. python键值对储存数据_python 存储键值对
  14. onenote使用python开发_我应该用onenote还是印象笔记?
  15. errMsg: “getUserProfile:fail can only be invoked by user TAP gesture.
  16. Android 打电话实现两种方法
  17. goaheadlinux移植_goahead(嵌入式Web服务器)之交叉编译、移植篇
  18. spring.main.allow-bean-definition-overriding = true
  19. 指纹/人脸/gatekeeper学习笔记
  20. 移动工具 证件照的设置

热门文章

  1. 防止 重复重建相同的表
  2. cocos2dx win32下的MainLoop分析(启动流程)
  3. CString转换为char*
  4. 大数据之-Hadoop伪分布式_配置启动HDFS_并运行MR程序---大数据之hadoop工作笔记0023
  5. 大数据_Hbase-API访问_Java操作Hbase_获取连接---Hbase工作笔记0011
  6. 持续集成部署Jenkins工作笔记0017---17.整合GitHub的持续集成环境要点说明
  7. java零碎要点010---Java实现office文档与pdf文档的在线预览功能
  8. 如何对付vc6的疑难杂症
  9. python越来越慢_为什么我的算法越来越慢?
  10. 随想录(gcc生成的中间语言、汇编代码)