Hdu 2824 The Euler function

欧拉函数筛选法练习。

CODE:

#include <stdio.h>
#include <stdlib.h>
#include < string.h>
using  namespace std;


const  int SIZE =  3000001;

__int64 phi[SIZE];

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

int main()
{
    init();
     int beg, end;
     while(~scanf( " %d%d ", &beg, &end))
    {
        __int64 s =  0;
         for( int i = beg; i <= end; i++)
            s += phi[i];
        printf( " %I64d\n ", s);
    }
     return  0;

} 

你可能感兴趣的:(function)