zoukankan      html  css  js  c++  java
  • oracle中plsql练习-----在控制台输出1到100以内的素数。

    一、思路:首先需要知道素数的概念即质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。

    中心思想是,外循环所有的自然数,内循环折半查询,增加代码的速度,注意:从1开始,需要大于1,但是plsql中的循环是包括两端的值的,所以初始值应该从2开始。

    二、具体实现

     1 -- 在控制台输出1到100以内的素数。
     2 
     3 declare 
     4 -- 声明一个boolean类型的变量,用作判断输出
     5 v_z boolean;
     6 begin
     7   -- 循环100以内的数字
     8   for i in 2..100 loop
     9     -- 满足条件即为true
    10     v_z:=true;
    11     -- 内循环,如果自然数不为素数,则不能被被2正常,直接就不走内循环,
    12     -- 如果不是素数,则继续走内循环,将v_z赋值为false,为后边的输出做判断
    13     for j in 2..trunc(i/2) loop
    14       -- 内循环中的算法是折半查询,例如:18不是素数,则18能被2整除,也就得到了18最大的因数为9,依次类推,提高了算法的效率。
    15       if(mod(i,j)=0) then
    16          v_z:=false;
    17         
    18       end if;
    19     
    20     end loop;
    21     -- 最后输出判断,如果v_z为true,则该自然数为素数,则输出。
    22     if v_z then
    23       dbms_output.put_line(i);
    24     end if;
    25     
    26   end loop;
    27   end;
  • 相关阅读:
    西门子SCL读写DB数据
    LeetCode8.字符串转换整数(atoi) JavaScript
    LeetCode8.字符串转换整数(atoi) JavaScript
    WebRequestSugar
    iosblock用法
    datasci
    UINavigationController学习笔记
    iOSTab bar
    自定义tab bar控件 学习资料
    Ios tab Bar 使用方法
  • 原文地址:https://www.cnblogs.com/yanpingping/p/10835141.html
Copyright © 2011-2022 走看看