zoukankan      html  css  js  c++  java
  • 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);]] 
  • 相关阅读:
    selenium python 启动Chrome
    安装selenium python
    网络编程32
    动态生成验证码———MVC版
    C#之发送邮件【模板】+【封装】ZJ版
    【转】解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介
    Cache,MemCache,Application,Cookie等其它缓存汇总
    点击弹出li所在的序列号
    【转】js实现复制到剪贴板功能,兼容所有浏览器
    前端效果——持续更新。。。
  • 原文地址:https://www.cnblogs.com/littlehb/p/4145717.html
Copyright © 2011-2022 走看看