列出1-100的所有质数的两种方法

方法一

用dbms_output.put_line 打印出来

---打印1-100以内的质数(素数)
declare
  v_number number;
  v_temp   number;

begin
  for v_number in 1 .. 100 loop
    v_temp := 1;

    while v_temp < v_number loop
          v_temp := v_temp + 1;  --加1放在这里才能保证不被后面exit剔除哦
     if v_temp = v_number then      
        dbms_output.put_line(v_number);   --只有没有被任何数整除才会来到这一步
      end if;
      if mod(v_number, v_temp) = 0 then    --如被比自身小的数整除,则不是质数(素数),退出循环,否则,继续走到等于本身
        exit;
      end if;
    end loop;

  end loop;
end ;

方法二

建立表格,出入表中

create table T_TABLE
(
  prime NUMBER
)
tablespace SYSTEM   --不指定表空间则自动使用这个表空间
  pctfree 10
  pctused 40
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
create or replace procedure P_PRIME is   --INTEGER整数类型
begin
  DELETE FROM T_TABLE;
  DELETE FROM T_TEMP_TABLE;
  COMMIT;
  for a in 1 .. 100 loop
    insert into t_temp_table (temp_prime) values (a);
  end loop;
  insert into t_table
    select *
      from t_temp_table t
     where not exists (select *
              from t_temp_table t1, t_temp_table t2
             where t1.temp_prime * t2.temp_prime = t.temp_prime
               and t1.temp_prime <> 1
               and t2.temp_prime <> 1)
               and t.temp_prime != 1;
  COMMIT;
end P_PRIME;
时间: 2024-10-28 10:28:31

列出1-100的所有质数的两种方法的相关文章

用c#求质数的两种方法

求1到100的中的质素 方法1: Console.Write("1到100中的质数有:");   for(int i=1;i<=100;i++){ int m=0; for(int j=1;j<=i;j++){ if(i%j==0){ m++; } } if(m==1){ Console.Write(i+"  "); }else if(m==2){ Console.Write(i+"  "); } } 方法2: Console.Wri

Java求100以内的质数的四种方法

质数: 又称素数,只能被1和它本身整除的数就是质数. 难点: 需要两层循环,外层循环99遍: 内层循环,控制除数为2到98(也就是2到被除数前面的一个数). 为什么从2开始?因为所有数都能被1整除. 需要定义一个变量flag来记录某个数是不是质数 内层循环结束后需要重新把flag重置为true 方法一: import org.junit.Test; public class Demo { @Test public void primeNumberTest() { boolean flag = t

求质数的两种方法1-100

// 1-100以内质数的和 for (int i = 1; i <= 100; i++) { boolean b = true; if (i != 1) { for (int j = 2; j < i; j++) { if (i % j == 0) { b = false; break; } } if (b) { System.out.println(i); } } } System.out.println("************************************

判断质数的两种方法

<!--方法一, 删选法,通过排除有倍数关系的数--><script type="text/javascript"> var arr = []; for(var i = 2; i < 200; i ++){ for(var j = 2 * i; j < 200; j += i){ arr[j] = true; } } for(var i = 2; i < 200; i ++){ if(arr[i] == undefined){ document

设置数据库兼容级别的两种方法以及区别

转:http://blog.csdn.net/htl258/article/details/5696325 --设置数据库兼容级别的两种方法 --以设置兼容SQL Serve 2005 为例 --法一: ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = 90 GO --法二: EXEC sp_dbcmptlevel database_name,90 GO database_name 要修改为数据库的名称. 各参数值对应的数据库版本: 8

一、查看Linux内核版本命令(两种方法):

一.查看Linux内核版本命令(两种方法): 1.cat /proc/version [[email protected]CentOS home]# cat /proc/versionLinux version 2.6.32-431.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013 2.uname -a [

Android第五期 - 更新自己的apk本地与网络两种方法

首先是本地: ParseXmlService部分: package com.szy.update; import java.io.InputStream; import java.util.HashMap; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element

网页设计制作CSS实现隔行换色两种方法

网页设计制作CSS实现隔行换色两种方法 2007-12-21 20:59:44  来源:网页教学网 网页设计制作,CSS实现隔行换色两种方法: 第一种方法: 以下为引用的内容:<style type="text/css">UL.myul1 LI{}</style><ul class="myul1"><li id="li1">111</li><li id="li2"

(转)java创建线程的两种方法比较

Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线程,有两种方法: ◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法:  ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法. 为什么Java要提供两种方法来创建线程呢?它们都有哪些区别?相比而言,哪一种方法更好呢? 在Java中,类仅支持单继承