鬼谷子先生有两个绝顶聪明的门徒,一个叫孙宾(后来改名孙膑),一个叫庞涓。

有一天鬼谷子对他们说:“两个大于1而小于100的自然数相加等于一个和,相乘等于一个积。谁能猜出我说的这两个自然数是多少?”

庞涓说:“条件太少了。和积都不知道,我没有办法算。”

“好,你附耳过来。”鬼谷子悄悄地告诉庞涓和是多少。然后又悄悄地告诉孙宾积是多少。

“现在你们分别知道和积,谁能说出答案?”

庞涓想了一会,得意地说:“虽然我不知道答案是哪两个自然数,但是我知道孙宾也不知道这两个数是多少!”

孙宾淡淡一笑:“听你一说,现在我倒知道这两个数是多少了。”

庞涓大吃一惊:“慢,你先别说答案。”他又想了一会说:“师傅,我也知道这两个数是多少了。”

你知道这两个自然数是多少吗???

--方式1,通过逻辑推荐版
create or replace function isPrimeNum(num in number) return number is
  Result number;
begin

result := 0;
  FOR J IN 2 .. num - 1 LOOP
    IF MOD(num, J) = 0 THEN
      result := 1;
    END IF;
  END LOOP;
  return(Result);
end isPrimeNum;

with tt as (
select lva,
       lvb,
       lva || '+' || lvb,
       lva + lvb x,
       lva || '*' || lvb,
       lva * lvb y,
       row_number() over(partition by lva + lvb, lva * lvb order by lva) rn,
       count(0) over(partition by lva * lvb) ctc,
       count(0) over(partition by lva + lvb) cts,
       case
         when (lva = 2 and isprimenum(lvb) = 1) then 0
         when (lvb = 2 and isprimenum(lva) = 1) then 0
         else 1
       end cs
  from (select level + 1 lva from dual connect by level < 50),
       (select level + 1 lvb from dual connect by level < 50)
 where (isprimenum(lva) = 0 or isprimenum(lvb) = 0 or (isprimenum(lva) = 0 and isprimenum(lvb) = 0))
)
select *
  from (select tt.*, count(0) over(partition by x) ct
          from tt
         where rn = 1
           and mod(x, 2) <> 0
           and cs = 1
           and x < 54
              --and x in(11,17,23,27,29,35,37,41,47,51,53)
           and ctc > 2
           and ctc < 6
           and isprimenum(x - 2) = 1)
 where ct = 1

--方式2  完全穷举法
with tt as (select rownum+1 col from dual connect by rownum<99)
select f.a,f.b
  from (select d.*, count(he) over(partition by he) hect2
          from (select c.*, count(ji) over(partition by ji) jict3
                  from (select b.*, min(jict) over(partition by he) jict2
                          from (select a.*,
                                       count(he) over(partition by he) hect,
                                       count(ji) over(partition by ji) jict
                                  from (select a.col a,
                                               b.col b,
                                               a.col || '+' || b.col hes,
                                               a.col + b.col he,
                                               a.col || '*' || b.col jis,
                                               a.col * b.col ji,
                                               row_number() over(partition by a.col + b.col, a.col * b.col order by a.col) rn
                                          from tt a, tt b) a
                                 where rn = 1) b
                         where hect > 1) c
                 where jict2 > 1) d
         where d.jict3 = 1) f
 where f.hect2 = 1

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7607759/viewspace-160017/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7607759/viewspace-160017/

又一道小学题的sql实现~~~相关推荐

  1. 一道小学题,解答了我与学霸的差距

    目录 一.背景 二.题目 三.过程 1.形式转换 2.个位数相加只能向前进一位嘛?进两位可以吗?进三位呢? 3.十位数上要填写的内容,可以是0嘛?你想到了吗? 4.如何下意识的去做结构化? 四.总结 ...

  2. 万能的BP神经网络,从计算一道小学题开始

    艾克上课打瞌睡,突然感觉脑袋上被砸了一下,然后听见一声咆哮:"艾克!!!还没睡够?!这道题怎么做?答不上来就站出去." 黑板上写着: 一个苹果换3个梨,2个苹果换6个梨,3个苹果换 ...

  3. 一道小学奥数题的编程解法

    一道小学奥数题的编程解法 这是一道小学奥数题,看到这一题后如果只给我笔和纸,我真的无从下手,不知怎么去把这些方框填出来.但借助编程,这道题就非常简单了.直接送上代码. C++程序代码 #include ...

  4. 一道小学奥数题,没做出来。求解答

    一道小学奥数题,没做出来.求解答. 将图形平均分成大小相等,形状相同的四份. 下面是某位高人给出的答案.四种不同颜色分别代表4个不同的部分.怎么说呢,这确实是个答案... 虽然和我们通常认为的答案有些 ...

  5. c语言 奥数题目及答案,科学网—C语言做一道小学奥数题 - 康建的博文

    见过一道小学奥数题,记得题目是:从5月1日到7月1日数字0-9无重复的时间有多少个?(如0512142804是05月12日14:28:04,其中0.1.4有重复, 0526174839无重复). 大概 ...

  6. c语言 奥数题目及答案,科学网-C语言做一道小学奥数题-康建的博文

    见过一道小学奥数题,记得题目是:从5月1日到7月1日数字0-9无重复的时间有多少个?(如0512142804是05月12日14:28:04,其中0.1.4有重复, 0526174839无重复). 大概 ...

  7. 绕过waf mysql爆库_iwebsec刷题记录-SQL注入漏洞

    被推荐了这个web平台,感觉挺适合新手的,网上搜了下没看到有人写wp,这里本入门萌新来稍微整理下自己解题的过程 SQL注入漏洞 01-数字型注入 http://localhost:32774/sqli ...

  8. 一道ctf题关于php反序列化字符逃逸

    0x01 前言 无意间做应该是0ctf2016的一道web题,get新点,总计一下. 0x02 代码审计 进去之后是一个登录界面,试了一下register.php发现可以注册,注册完成后登录跳转到up ...

  9. 一道小学数学竞赛题:到底有几个三角形?

    近日,在日本的Twitter上又发生了一起群撕事件,而诱因竟是一张图片,准确地说,应该是一道小学数学竞赛题.正如下图你所见,这是一道数数题,问这张图里你能看到出几个三角形?据说只有IQ120以上的天才 ...

最新文章

  1. [cocoapods]cocoapods问题解决
  2. 推荐《求医不如求己》,实用
  3. SteamVR 工具包VRTK实例解析
  4. Mybaties配置一对多关系sql实例
  5. 隐瞒英特尔重大安全漏洞惹众怒,苹果遭遇集体诉讼
  6. springboot 2中文手册_基于spring boot的JAVA开源商城系统实战,后台管理系统免费分享...
  7. word安装到计算机的哪里,如何查找word安装目录 如何查找word的路径
  8. Summation Prove (Intro. to Algo. Open Course Episode 5) in Quick Sort
  9. mysql myisam转innodb_WordPressMySQL数据库MyISAM表转换InnoDB方法和修复工具
  10. 【USACO】山峰暸望
  11. 龙讯LT8911EXB高性能MIPI转EDP分辨率1080P概述
  12. Keil多分支工程管理
  13. 【第五周】新蜂团体贡献分
  14. 针对云主机卡死问题的定位分析方法
  15. ARM汇编语言编程入门实践
  16. npm安装electron报RequestError: socket hang up错误解决方法
  17. vue 二维码解码器
  18. 实验三+037+吴烨倩
  19. mongodb linux下集群搭建
  20. java spring 事务传播_实战Spring事务传播性与隔离性

热门文章

  1. 桌面管理器占用内存高怎么办
  2. 5600G 5600X 12400F 12490F 对比区别表
  3. 解C#中的委托(Deligate)
  4. 【喜报】华为OD统一考试(B卷)题库清单(已收录161题),更快,更全的 B 卷题库大纲
  5. 史上最全数据分析师资料免费下载[Python]
  6. excel为单元格区域套用表格样式以及取消表格样式
  7. linux怎么验证tacacs认证,TACACS+认证服务器总结
  8. 如何用手机和华为平板控制LED透明屏?方法及功能盘点!
  9. 2022中级会计分录
  10. 如何配置HTTPS服务器