UVA 11426 (欧拉函数)

原创 2015年11月19日 14:53:57

白书125页例题。

gcd(x,n)所有可能的值是n的约数,要满足gcd(x,n) = i(i是n的约数)必然有gcd (x/i, n/i) = 1,也就是ph(n/i)的值。也就是对于每一个数i,如果i是n的约数,那么i在以n结尾的gcd中出现phi(i)次,这就是i对答案的贡献。

 

#include <bits/stdc++.h>
using namespace std;
#define maxn 4000000

long long phi[maxn+5];
long long f[maxn+5], sum[maxn+5];

void init () { //打表
    for (int i = 2; i <= maxn; i++)
        phi[i] = 0;
    phi[1] = 1;
    for (int i = 2; i <= maxn; i++) if (!phi[i]) {
        for (int j = i; j <= maxn; j += i) {
            if (!phi[j])
                phi[j] = j;
            phi[j] = phi[j] / i * (i-1);
        }
    }
    memset (f, 0, sizeof f);
    for (int i = 1; i <= maxn; i++) {
        for (int j = i+i; j <= maxn; j += i)
            f[j] += i*phi[j/i];
    } 
    sum[2] = 1;
    for (int i = 3; i <= maxn; i++)
        sum[i] = sum[i-1]+f[i];
    return ;
}

int n;

int main () {
    //freopen ("in", "r", stdin);
    init ();
    while (cin >> n && n) {
        cout << sum[n] << endl;
    }
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

UVa11426 - GCD - Extreme (II)(欧拉函数的妙用)

Given the value of N, you willhave to find the value of G. The definition of G is given below: ...
  • wuli2496
  • wuli2496
  • 2014年11月23日 16:30
  • 785

UVA11426

【题意】 求sum(gcd(i,j),11 【题解】 1.建立递推关系,s(n)=s(n-1)+gcd(1,n)+gcd(2,n)+……+gcd(n-1,n); 2.设...
  • SelinaFelton
  • SelinaFelton
  • 2016年07月15日 10:56
  • 270

uva 11426 - GCD - Extreme (II)(数论)

题目链接:uva 11426 - GCD - Extreme 题目大意:给出n,求∑i!=jngcd(i,j) 解题思路:f(n)=gcd(1,n)+gcd(2,n)+⋯+gcd(n−...
  • u011328934
  • u011328934
  • 2014年07月01日 20:37
  • 1047

uva 11426 欧拉函数

这也是训练赛上的一个题目,题目的要求很简单,就是那个代码所展示的,然后,然后当时就不会了,后来才知道可以用欧拉函数求gcd(i,j); 先说一下如何分析这个题目 我们令f(n) = gcd(1...
  • qq_36819130
  • qq_36819130
  • 2017年07月30日 16:57
  • 68

UVA 11426 欧拉函数

#include #include #include #include #include #define LL long long #define maxn 4000000 using namesp...
  • a634771197
  • a634771197
  • 2014年07月17日 16:45
  • 461

UVA 11426 欧拉函数 + 递推

codeimport java.util.*; import static java.lang.System.*; public class Main{ static final int N =...
  • ADjky
  • ADjky
  • 2017年03月04日 18:41
  • 240

uva 11426 GCD - Extreme (II) (神奇的GCD)

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2421...
  • theArcticOcean
  • theArcticOcean
  • 2016年01月19日 10:48
  • 831

UVA11255 necklace (polya定理)

题目链接 http://vjudge.net/problem/18969/origin 题目大意:用三种颜色,蓝,黄,白各a,b,c个去染色a+b+c个珠子,珠子围成一个环,问能染成多少种不同的珠子。...
  • overload1997
  • overload1997
  • 2016年11月06日 17:26
  • 192

UVA 11426 GCD - Extreme (II) (数论|欧拉函数)

题意:求sum(gcd(i,j),1 思路:首先可以看出可以递推求出ans[n],因为ans[n-1]+f(n),其中f(n)表示小于n的数与n的gcd之和 问题转化为了求f(n),因为小于n的数...
  • u014664226
  • u014664226
  • 2015年08月18日 22:24
  • 466

Uva 11426 - GCD - Extreme (II) 欧拉函数

链接:戳这里 Given the value of N, you will have to find the value of G. The definition of G is given...
  • libin66
  • libin66
  • 2016年03月25日 21:52
  • 269
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UVA 11426 (欧拉函数)
举报原因:
原因补充:

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