Calculation 2
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 840 Accepted Submission(s): 371
Problem Description
Given a positive integer N, your task is to calculate the sum of the positive integers less than N which are not coprime to N. A is said to be coprime to B if A, B share no common positive divisors except 1.
Input
For each test case, there is a line containing a positive integer N(1 ≤ N ≤ 1000000000). A line containing a single 0 follows the last test case.
Output
For each test case, you should print the sum module 1000000007 in a line.
Sample Input
Sample Output
题目大意:给你一个N,求小于等于N的不互质的数的总和。
欧拉公式的引伸:小于或等于n的数中,与n互质的数的总和为:φ(x) * x / 2。(n>1)
所以:res = n*(n-1)/2-n - phi[x]*x/2。
主要考对欧拉公式和欧拉定理的推广和理解,不多说,代码。
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3501
代码:
#include <iostream>
#include <stdio.h>
#include <memory.h>
using namespace std;
typedef long long LL;
int eular(LL n) //欧拉函数
{
int i, ans = n;
for(i = 2; i * i <= n; i++)
{
if(n%i == 0)
{
ans -= ans/i;
while(n%i == 0)
n /= i;
}
}
if(n > 1) ans -= ans/n;
return ans;
}
int main()
{
LL n, ans;
while(scanf("%I64d", &n), n)
{
ans = n * (n+1) / 2 - n; //总和
ans -= eular(n) * n / 2; //减去互质的总和公式
ans %= 1000000007; //再取模
printf("%I64d\n", ans);
}
return 0;
}
分享到:
相关推荐
"hdu 1695 GCD(欧拉函数+容斥原理)" 题目大意是:给定 a, b, c, d, k,找到一队 x, y,满足 g(x, y) = k,且 x ∈ [1, b], y ∈ [1, d],问有多少对符合要求的 (x, y)。 思路是:gcd(x, y) == k 解释 x, y 都能...
(HDUACM2010版_08)母函数(HDUACM2010版_08)母函数(HDUACM2010版_08)母函数(HDUACM2010版_08)母函数(HDUACM2010版_08)母函数(HDUACM2010版_08)母函数
HDU(杭州电子科技大学在线评测系统)是一个深受程序员喜爱的在线编程练习平台,它提供了丰富的算法题目供用户挑战,帮助他们提升编程技能和算法理解能力。"hdu.rar_hdu"这个压缩包文件很可能是某位程序员整理的他在...
### hdu1250高精度加法 #### 背景介绍 在计算机科学与编程竞赛中,处理大整数运算(特别是加法、减法、乘法等)是常见的需求之一。当数字的位数超过了标准数据类型(如`int`、`long`等)所能表示的最大值时,就需要...
【标题】"HDU_2010.rar"是一个压缩包文件,其中包含了与"HDU 2010"相关的资源,特别是针对"HDU ACM20"比赛的编程题目。"hdu 2010"和"hdu 20"可能是该比赛的不同简称或分类,而"hdu acm20"可能指的是该赛事的第20届...
【标题】"HDU题目java实现"所涉及的知识点主要集中在使用Java编程语言解决杭州电子科技大学(HDU)在线评测系统中的算法问题。HDU是一个知名的在线编程竞赛平台,它提供了大量的算法题目供参赛者练习和提交解决方案...
在这个解题报告中,我们看到两个具体的杭电(HDU)在线判题系统上的题目,它们都是关于使用1分、2分、5分硬币组合成不同金额的问题。 首先,我们来看第一个题目【hdu 2566】。这是一个典型的组合问题,题目要求找出...
I2C(Inter-Integrated Circuit)接口,如PB6/I2C_SCL(时钟)和PB7/I2C_SDA(数据),用于连接各种外围设备,如传感器和驱动器。 此外,STM32还支持USB(Universal Serial Bus)接口,如PA8/USB_EN(使能)和PA10/...
ACM HDU 题目分类 ACM HDU 题目分类是指对 HDU 在线判题系统中题目的分类,总结了大约十来个分类。这些分类将有助于编程选手更好地理解和解决问题。 DP 问题 DP(Dynamic Programming,动态规划)是一种非常重要...
2-sat---hdu3062,代码详尽,清晰,格式规范,亲测无误。
【标题】"HDU DP动态规划"涉及到的是在算法领域中的动态规划(Dynamic Programming,简称DP)技术,这是解决复杂问题的一种高效方法,尤其适用于有重叠子问题和最优子结构的问题。动态规划通常用于优化多阶段决策...
题目"小数化分数2(hdu1717)"正是这样一种挑战,它要求我们开发一个算法来精确地表示给定的小数为一个分数形式。 首先,我们要理解小数到分数转换的基本原理。对于有限小数,这个过程相对直接,因为我们可以直接...
【标题】"hdu.rar_HDU 1089.cpp_OJ题求和_hdu_horsekw5_杭电obj" 提供的信息是关于一个压缩文件,其中包含了一个名为 "HDU 1089.cpp" 的源代码文件,这个文件是为了解决杭州电子科技大学(Hangzhou Dianzi ...
HDU1059的代码
hdu1001解题报告
hdu 1574 passed sorce
【ACM HDU】指的是在ACM(国际大学生程序设计竞赛,International Collegiate Programming Contest)中,参赛者在杭州电子科技大学(Hangzhou Dianzi University,简称HDU)的在线评测系统上完成并已解决的题目集合...
迭代通常更高效,因为它避免了函数调用的开销,而递归则代码简洁,易于理解,但可能导致较大的栈空间消耗。 5. **平面分割问题**: - **直线分割圆**:n条直线将圆分成的区域数可以通过递推公式F(n) = F(n-1) + n...
2. **数据结构**:常用的数据结构包括数组、链表、栈、队列、树(二叉树、平衡树如AVL和红黑树)、图等,对于不同的问题,选择合适的数据结构能有效提高解题效率。 3. **字符串处理**:杭电ACM中的题目可能涉及到...