poj 2480

原创 2012年03月28日 17:56:49

设函数g(n) = gcd(i,n) (1<=i<=n),由积性函数的定义,g(n)=g(m1)*g(m2) (n=m1*m2 且 (m1, m2)= 1),所以g是积性函数。由具体数学上的结论,积性函数的和也是积性的。所以f(n) = ∑gcd(i, n)也是积性函数。由初等数论中的定理,如果f(n)是不恒为0的数论函数,n>1时 n=p1^a1*p2^a2*...*ps^as,那么f(n)是积性函数的充要条件是f(1)=1,及f(n) = f(p1^a1)*f(p2^a2)*...f(pr^ar)。所以只要求f(pi^ai)就好,如果d是n的一个约数,那么1<=i<=n中gcd(i,n) = d的个数是phi(n/d),即n/d的欧拉函数

f(pi^ai) =  Φ(pi^ai)+pi*Φ(pi^(ai-1))+pi^2*Φ(pi^(ai-2))+...+pi^(ai-1)* Φ(pi)+ pi^ai *Φ(1)

     = pi^(ai-1)*(pi-1) + pi*pi^(ai-2)*(pi-1)....+pi^ai

     =  pi^ai*(1+ai*(1-1/pi))

f(n) = p1^a1*p2^a2...*pr^ar*(1+a1*(1-1/p1))*(1+a2*(1-1/p2))*...

       =  n*(1+a1*(1-1/p1))*(1+a2*(1-1/p2))*...

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>

using namespace std;

typedef __int64 lint;


int main()
{
    lint n;
    while (scanf("%I64d", &n) != EOF) {
        lint i, sqr, p, a, ans;
        ans = n;
        sqr = floor(sqrt(n*1.0));
        for (i = 2; i <= sqr; ++i) {
            if (n%i == 0) {
                a = 0;
                p = i;
                while (n%p == 0) {
                    a++;
                    n /= p;
                }
                ans = ans + ans*a*(p-1)/p;
            }
        }
        if (n!=1) {
            ans = ans + ans*(n-1)/n;
        }
        printf("%I64d\n", ans);
    }
    return 0;
}


POJ 2480 Longge's problem 欧拉函数

题意: Given an integer N(1 题解: 公式:f(N)=∑x*φ(N/x),x | N (x是N的约数) 因为在1···N中,gcd(i,N) = x, 的个数的等于φ(...
  • Tsaid
  • Tsaid
  • 2012年03月25日 00:27
  • 1147

POJ 2480

暑期训练2 I题 传送门:http://poj.org/problem?id=2480 Longge's problem Time Limit: 1000MS   Memory Limit...
  • hmzhe
  • hmzhe
  • 2016年07月21日 00:05
  • 159

Poj 2480积性函数

typedef long long LL; const int maxn = 100008 ; bool is[maxn] ; int ps ; int prime...
  • u013491262
  • u013491262
  • 2014年12月14日 14:20
  • 347

POJ 2480 Longge 数论

描述 Given an integer N(1 思路 通过数论知识,可以知道这是一个积性函数。(具体我也不清楚,记住就行了。)分解质因数,对于每个p^a,可以推倒一个类似递归的方法算出...
  • Trochowski
  • Trochowski
  • 2012年05月21日 15:17
  • 207

poj 2480 (欧拉函数应用)

点击打开链接 //求SUM(gcd(i,n), 1
  • yyf573462811
  • yyf573462811
  • 2013年07月22日 15:04
  • 770

poj 2480 gcd求和

欧拉函数 gcd求和
  • neighthorn
  • neighthorn
  • 2016年07月11日 00:11
  • 524

poj 2480 欧拉函数+积性函数+GCD

题目:http://poj.org/problem?id=2480 首先要会欧拉函数:先贴欧拉函数的模板,来源于吉林大学的模板: //欧拉函数PHI(n)表示的是比n小,并且与n互质的正整...
  • u011026968
  • u011026968
  • 2014年05月10日 15:44
  • 1007

POJ 2480 Longge's Problem

积性函数的性质,同时,PHI(n/d)为1到n中与n的公约数为d的个数
  • scorpiocj
  • scorpiocj
  • 2011年03月01日 21:32
  • 1108

POJ 2480 Longge's problem

欧拉函数
  • Orion_Rigel
  • Orion_Rigel
  • 2016年07月16日 15:31
  • 130

Arduino舵机控制1

Arduino:舵机控制 舵机,又称伺服马达,是一种具有闭环控制系统的机电结构。舵机主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由控制器发出PWM(脉冲宽度调制)信号给舵机...
  • daditao
  • daditao
  • 2014年04月14日 14:21
  • 2457
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:poj 2480
举报原因:
原因补充:

(最多只允许输入30个字)