闫平平
写代码也要酷酷的!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

一、思路:首先需要知道素数的概念即质数定义为在大于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;
复制代码

 

posted on   写代码也要酷酷的  阅读(4062)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
 
点击右上角即可分享
微信分享提示