码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 2478 Farey Sequence( 欧拉函数 + 法雷数列 )

时间:2014-11-04 16:44:16      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   os   for   sp   

 

 

POJ 2478 Farey Sequence ( 欧拉函数 + 法雷数列 )

 

bubuko.com,布布扣

 

bubuko.com,布布扣

 

bubuko.com,布布扣
#include <cstdio>
#include <cstring> 
using namespace std;
#define MAXN 1000005
typedef long long LL;
int vis[ MAXN ], prime[ MAXN ], cnt, n;
LL phi[ MAXN ];

void get_phi_prime( int N )
{
    phi[1] = 1;
    cnt = 0;
    for( int i = 2; i <= N; ++i )
    {
        if( !vis[i] )
        {
            prime[ cnt++ ] = i;
            phi[i] = i - 1;
        }
        for( int j = 0; j < cnt; ++j )
        {
            if( i * prime[j] > N ) break;
            vis[ i * prime[j] ] = 1;
            if( i % prime[j] == 0 ){
                phi[ i * prime[j] ] = phi[i] * prime[j];
                break;
            }
            else
                phi[ i * prime[j] ] = phi[i] * ( prime[j] - 1 );
        }
    }
}

void cal()
{
    for( int i = 3; i < MAXN; ++i )
        phi[i] += phi[i - 1];
}

int main()
{
    get_phi_prime( MAXN );
    cal();
    while( ~scanf( "%d", &n ) && n )
    {
        printf( "%lld\n", phi[n] );
    }
    return 0;
}
代码君

 

POJ 2478 Farey Sequence( 欧拉函数 + 法雷数列 )

标签:style   blog   http   io   color   ar   os   for   sp   

原文地址:http://www.cnblogs.com/BigBallon/p/4073893.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!