zoukankan      html  css  js  c++  java
  • 算法模板——线性欧拉函数

    实现功能:求出1-N的欧拉函数,然后应对若干个询问操作

    其实就是个素数判定+欧拉函数性质的二合一

    代码如下,我觉得应高不难懂,只要你知道欧拉函数的性质

    var
       i,j,k,l,m,n:longint;
       a,b:array[0..10000005] of longint;
    procedure phi;
              var i,j:longint;
              begin
                   m:=0;a[1]:=1;
                   for i:=2 to n do
                       begin
                            if a[i]=0 then
                               begin
                                    inc(m);
                                    b[m]:=i;
                                    a[i]:=i-1;
                               end;
                            for j:=1 to m do
                                begin
                                     if (i*b[j])>n then break;
                                     if (i mod b[j])=0 then
                                        a[i*b[j]]:=a[i]*b[j]
                                     else
                                         a[i*b[j]]:=a[i]*(b[j]-1);
                                end
                       end;
              end;
    begin
         readln(n);phi;
         while true do
               begin
                    readln(j);
                    writeln(a[j]);
               end;
    end.
  • 相关阅读:
    ThreadLocal
    mysql
    heroku 的用法
    Redis
    disruptor
    RxJava
    TCP
    虚拟机的安装及配置等
    k8s
    Ribbon源
  • 原文地址:https://www.cnblogs.com/HansBug/p/4483434.html
Copyright © 2011-2022 走看看