51Nod1040 最大公约数之和 欧拉函数
来源:互联网 发布:卡盟域名是什么 编辑:程序博客网 时间:2024/05/24 07:19
给出一个n,求1-n这n个数,同n的最大公约数的和。比如:n = 6
1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15
Input
1个数N(N <= 10^9)
Output
公约数之和
Sample Input
6
Sample Output
15
对于n的每一个约数m,(1~n)中与n的最大公约数为m的个数 等于 (1~n/m )中和 n/m 互质的个数,即欧拉函数值E(n/m)
#include<bits/stdc++.h>const int INF = 0x3f3f3f3f;const int Maxn = 1e7 * 2;const int mod = 2333333;#define ll long long#define mem(x,y) memset(x,y,sizeof(x))using namespace std;long long Eular(long long m) { // 欧拉函数 long long ans = m; for (int i = 2; i * i <= m; i++) { if (m % i == 0) { ans -= ans / i; while (m % i == 0) m /= i; } } if (m > 1) ans -= ans / m; return ans; // 或// long long k = 1;// for (ll i = 2; i * i <= m; i++) {// if (m % i == 0) {// k *= (i - 1);// while (m % i == 0) {// m /= i;// k *= i;// }// k /= i;// }// cout<<k<<endl;// }// if (m > 1) {// k = k * (m - 1) ;// }// return k;}int main() { long long m; while (cin >> m) { cout << Eular(m) << endl; }}
阅读全文
0 0
- 51nod1040 最大公约数之和 (欧拉函数 )
- 【51nod1040】【最大公约数之和】【欧拉函数】
- 51Nod1040 最大公约数之和 欧拉函数
- 【欧拉函数】51Nod1040[最大公约数之和]题解
- 51nod1040最大公约数之和
- [51nod1040]最大公约数之和
- 数论——51nod1040 最大公约数之和
- 51nod-1040-最大公约数之和(欧拉函数)
- 51NOD 1040 最大公约数之和(分析 + 欧拉函数)
- 51nod-1040-1040 最大公约数之和(欧拉函数)
- 51NOD 1040 1040 最大公约数之和 数论 欧拉函数
- 51NOD 1040 最大公约数之和(欧拉函数 + 转化)
- 51nod 1040 最大公约数之和(欧拉函数)
- 【51nod】1040 最大公约数之和 欧拉函数
- [欧拉函数]51nod 1040 最大公约数之和 题解
- [欧拉函数]51nod 1188 最大公约数之和 V2 题解
- 51nod 1040 最大公约数之和 欧拉函数
- POJ2480(欧拉函数求最大公约数之和)
- ubuntu 14.04安装docker
- n个球m个不同的桶每个桶容量有限,求所有放置方法。
- wxPython的基础教程
- 算法导论 练习题 14.3-6
- JAVA-1026. 程序运行时间(15)
- 51Nod1040 最大公约数之和 欧拉函数
- centos7卸载自带的openjdk安装oracle jdk
- 字蛛的使用
- 泛函编程(17)-泛函状态-State In Action
- 【思路题】BZOJ4721 [NOIP2016]蚯蚓
- 字符串的插入
- JSP框架Tiles,好东西。
- 二叉树的遍历
- 泛函编程(16)-泛函状态-Functional State