• HDU 2824 The Euler function


    The Euler function

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 3789    Accepted Submission(s): 1569


    Problem Description
    The Euler function phi is an important kind of function in number theory, (n) represents the amount of the numbers which are smaller than n and coprime to n, and this function has a lot of beautiful characteristics. Here comes a very easy question: suppose you are given a, b, try to calculate (a)+ (a+1)+....+ (b)
     
    Input
    There are several test cases. Each line has two integers a, b (2<a<b<3000000).
     
    Output
    Output the result of (a)+ (a+1)+....+ (b)
     
    Sample Input
    3 100
     
    Sample Output
    3042
     
     
    线性筛选欧拉函数
     
    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    #include <cmath>
    #include <iostream>
    using namespace std;
    const int N = 3000010;
    long long  phi[N];
    void solve()
    {
        memset( phi , 0 ,sizeof phi );
        phi[1] = 1 ;
        for( int i = 2 ; i < N ; ++i ){
            if( !phi[i] ){
                for( int j = i ; j < N ; j += i ){
                    if( !phi[j] ) phi[j] = j ;
                    phi[j] = phi[j] / i * ( i - 1 );
                }
            }
        }
    }
    
    int main()
    {
        ios::sync_with_stdio(false);
        solve();
        for( int i = 2 ; i < N ; ++i ){
            phi[i] += phi[i-1] ;
        }
        int a , b ;
        while( cin >> a >> b  ){
            cout << phi[b] - phi[ a - 1 ] <<endl;
        }
    }
     
    only strive for your goal , can you make your dream come true ?
  • 相关阅读:
    window10使用vagrant+virtualBox搭建centos7
    吾日三思
    搭建EFK过程
    docker端口映射失效解决方法
    centos7防火墙相关命令
    docker学习
    python 读取hive数据
    shell 命令 查看本机ip
    shell 命令 修改hosts文件
    shell 命令 mkdir -p
  • 原文地址:https://www.cnblogs.com/hlmark/p/3998998.html
Copyright © 2020-2023  润新知