ACM 第二十天

积性函数、杜教筛

 练习题

莫比乌斯函数之和

51Nod - 1244

莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出。梅滕斯(Mertens)首先使用μ(n)(miu(n))作为莫比乌斯函数的记号。具体定义如下:
如果一个数包含平方因子,那么miu(n) = 0。例如:miu(4), miu(12), miu(18) = 0。
如果一个数不包含平方因子,并且有k个不同的质因子,那么miu(n) = (-1)^k。例如:miu(2), miu(3), miu(30) = -1,miu(1), miu(6), miu(10) = 1。

给出一个区间a,b
,S(a,b) = miu(a) + miu(a + 1) + ...... miu(b)。
例如:S(3, 10) = miu(3) + miu(4) + miu(5) + miu(6) + miu(7) + miu(8) + miu(9) + miu(10)
= -1 + 0 + -1 + 1 + -1 + 0 + 0 + 1 = -1。
Input输入包括两个数a, b,中间用空格分隔(2 <= a <= b <= 10^10)Output输出S(a, b)。Sample Input
3 10
Sample Output
-1


最大公约数之和 V3

 51Nod - 1237  
给出一个数N,输出小于等于N的所有数,两两之间的最大公约数之和。

 
相当于计算这段程序(程序中的gcd(i,j)表示i与j的最大公约数):
由于结果很大,输出Mod 1000000007的结果。

G=0;
for(i=1;i<N;i++)
for(j=1;j<=N;j++)
{
    G = (G + gcd(i,j)) %  1000000007;
}

Input输入一个数N。(2 <= N <= 10^10)Output输出G Mod 1000000007的结果。Sample Input
100
Sample Output
31080


原文地址:https://www.cnblogs.com/weixq351/p/9531894.html