• bzoj 2818 欧拉函数


    设w[i]为1-i中gcd(i,j)=1的数对数,那么w[i]:=2*Σphi[i]+1,欧拉函数线性生成就行了

    然后ans=Σw[n/prime[i]]是比较显然的事。。

    /**************************************************************
        Problem: 2818
        User: BLADEVIL
        Language: Pascal
        Result: Accepted
        Time:2672 ms
        Memory:156476 kb
    ****************************************************************/
     
    //By BLADEVIL
    var
        n                               :longint;
        mindiv, prime                   :array[0..10000100] of longint;
        phi                             :array[0..10000100] of int64;
        i, j                            :longint;
        ans                             :int64;
         
    begin
        read(n);
        for i:=2 to n do
        begin
            if mindiv[i]=0 then
            begin
                inc(prime[0]);
                prime[prime[0]]:=i;
                mindiv[i]:=i;
                phi[i]:=i-1;
            end;
            for j:=1 to prime[0] do
            begin
                if i*prime[j]>n then break;
                mindiv[i*prime[j]]:=prime[j];
                if i mod prime[j]=0 then
                begin
                    phi[i*prime[j]]:=phi[i]*prime[j];
                    break;
                end else
                    phi[i*prime[j]]:=phi[i]*(prime[j]-1);
            end;
        end;
        for i:=2 to n do phi[i]:=phi[i]+phi[i-1];
        for i:=1 to n do phi[i]:=2*phi[i]+1;
        for i:=1 to prime[0] do
            ans:=ans+phi[n div prime[i]];
        writeln(ans);
    end.
  • 相关阅读:
    httprunner运行报错问题:base url missed
    Locust性能模块浅谈
    如何对HTMLTestRunner 进行输出print 进行修改
    网易UI自动化测试工具Airtest中导入air文件中的方法
    如何在 idea 2019.3.4 中导入Github的项目并使用Git同步项目?
    Win10 Microsoft Store 微软商店 Error 0x00000193 解决方法
    读书笔记 |《计算机组成结构化方法》-01
    [MR] MapReduce 总结、回顾与吐槽
    [Git] 极简Git——关于Git的简要回顾
    [FlyWay] FlyWay工作原理
  • 原文地址:https://www.cnblogs.com/BLADEVIL/p/3486832.html
Copyright © 2020-2023  润新知