• LUA脚本中O(2)级素数查询


    --======================================================================================================
      local set={[1]=2,[2]=3,[3]=5,[4]=7,[5]=11,[6]=13,[7]=17,[8]=19,[9]=23,[10]=29,[11]=31,[12]=37,[13]=41,[14]=43,[15]=47,[16]=53,[17]=59,[18]=61,[19]=67,[20]=71,[21]=73,[22]=79,[23]=83,[24]=89,[25]=97,[26]=101};
      local reverse={[2]=1,[3]=2,[5]=3,[7]=4,[11]=5,[13]=6,[17]=7,[19]=8,[23]=9,[29]=10,[31]=11,[37]=12,[41]=13,[43]=14,[47]=15,[53]=16,[59]=17,[61]=18,[67]=19,[71]=20,[73]=21,[79]=22,[83]=23,[89]=24,[97]=25,[101]=26};
     
      ngx.say("当前值是:7,下一个质数是:"..set[reverse[7]+1]);
      ngx.say("当前值是:23,下一个质数是:"..set[reverse[23]+1]);
      ngx.say("当前值是:41,下一个质数是:"..set[reverse[41]+1]);
    
      ngx.say("=====================================");
      for key, value in pairs(set) do  
          ngx.say("key:"..key..",value:"..value);  
      end 
      ngx.say("=====================================");
      for key, value in pairs(reverse) do  
          ngx.say("key:"..key..",value:"..value);  
      end 
      --======================================================================================================
     --[[
    function newset()
        local reverse = {} --以数据为key,数据在set中的位置为value
        local set = {};  
        --一个数组,其中的value就是要管理的数据
        return setmetatable(set,{__index = {
              insert = function(set,value)
                  if not reverse[value] then
                        table.insert(set,value)
                        reverse[value] = table.getn(set)
                  end
              end,
    
              remove = function(set,value)
                  local index = reverse[value]
                  if index then
                        reverse[value] = nil
                        local top = table.remove(set) --删除数组中最后一个元素
                        if top ~= value then
                            --若不是要删除的值,则替换它
                            reverse[top] = index
                            set[index] = top
                        end
                  end
              end,
    
              find = function(set,value)
                  local index = reverse[value]
                  return index;
              end,
        }})
    end
    
    local n = newset();
    n:insert(5);]] 
  • 相关阅读:
    java反编译工具
    Eclipse反编译插件: Jodeclipse与JadClipse
    Apk修改利器:ApkToolkit v2.1
    新浪微博2.5.1 for Android 去广告
    java
    第K顺序统计量
    身份证号码
    pop3
    google
    Exception
  • 原文地址:https://www.cnblogs.com/littlehb/p/4145717.html
Copyright © 2020-2023  润新知