oracle怎么求素数 oraclesum函数怎么用

oracle怎么求1..1000之间的素数Oracle是数据库oracle怎么求素数,存储数据用oracle怎么求素数的oracle怎么求素数,应用逻辑最好放在数据库外面oracle怎么求素数,虽然可以实现oracle怎么求素数,但是并不提倡 。
set serverout on
DECLARE
v_iNUMBER;
v_jNUMBER;
v_cnt NUMBER;
TYPE type_array IS TABLE OF NUMBER;
primes type_array;
flagNUMBER;
BEGIN
primes := type_array();
primes.extend;
primes(1) := 2;
primes.extend;
primes(2) := 3;
v_i := 5;
v_cnt := 2;
LOOP
EXIT WHEN v_i1000;
flag := 1;
v_j:= 1;
LOOP
EXIT WHEN primes(v_j) * primes(v_j)v_i;
IF MOD(v_i, primes(v_j)) = 0 THEN
flag := 0;
EXIT;
END IF;
v_j := v_j1;
END LOOP;
IF flag = 1 THEN
primes.extend;
v_cnt := v_cnt1;
primes(v_cnt) := v_i;
dbms_output.put_line(v_i);
END IF;
v_i := v_i2;
END LOOP;
END;
/
Oracle中怎样使用pl/sql计算出1--100以内的素数啊--创建中间表
create table t_1 (
num number(6));
--1--100数据写到中间表
begin
for r1 in 1..100 loop
insert into t_1 (num) values (r1);
commit ;
end loop ;
end ;
--结果
select *
from t_1 t
where not exists (select *
from t_1 a, t_1 b
where a.num * b.num = t.num
and a.num1
and b.num1)
order by 1 ;
输出100~300之间的素数,每行显示6个数,用oracle 中plsql求解declare
b boolean;
c number(4):=1;
begin
for a in 100..300 loop
b:=true;
for i in 2..sqrt(a) loop
if mod(a,i)=0 then
b:=false;
end if;
end loop;
if b=true then
if mod(c,6)0 then
dbms_output.put(a||' ');
else
dbms_output.put_line(a);
end if;
c:=c 1;
end if;
end loop;
dbms_output.new_line();
end;
用 oracle中PL/SQL算法 求100内的素数本过程输入参数inp,计算1到inp之间的素数
算法:
拿出1-inp之间的每个数i,用2到i的平方根之间的每个数去除,全部除不尽的即为素数,有一个能除尽的为非素数
set serverout on
create or replace procedure is_prime(inp number)
as
i number;
j number;
is_prim boolean;
begin
dbms_output.new_line;
dbms_output.put(to_char(2)||' ');
for i in 3..inp loop
begin
is_prim:=true;
for j in 2..trunc(sqrt(i)) loop
if mod(i,j)=0 then
begin
is_prim:=false;
exit;
end;
end if;
end loop;
if is_prim then dbms_output.put(to_char(i)||' '); end if;
end;
end loop;
dbms_output.new_line;
end;
/
exec is_prime(100)
【oracle】定义一个Oracle存储过程,输出1~100之间的素数 。declare
v_num number;
v_now number;
v_yes number;
c_max number;
begin
v_num:=1;
c_max:=200;--这里设置最大数,想要100这内就写100,想要1000之内就写1000
loop
v_now:=2;--这里设置每一个数的初始被除数,从2开始
v_yes:=1;--设置初始参考数,1为素数 , 0为非素数 , 默认初始为1
if v_num4 then
dbms_output.put_line(v_num);--1到3都是素数,这里就不再判断了
-- v_num:=v_num 1;--自增1
end if;
if v_num=4 then
--这里开始判断,只能被1和本身整除的数,就是素数
loop
if mod(v_num,v_now)=0 and v_numv_now then --如果有能被整除的数,且被除数不是除数本身,就不是素数
v_yes:=0;
end if;
v_now:=v_now 1;--被除数递增
exit when v_now=v_num;--当被除数大于除数时退出
end loop;--因为要一个一个的判断 , 所以要来一次循环
end if;
if v_num4 and v_yes=1 then
dbms_output.put_line(v_num);
-- v_num:=v_num 1;--自增
end if;
v_num:=v_num 1;--自增
exit when v_num=c_max;
end loop;
end;
参考一下,自己写的
oracle for循环求1到100之间的素数declare
/*思路:素数是只能被1和它本身整除oracle怎么求素数的数,针对一个数noracle怎么求素数,从2到n-1对其求模,如果能整除就不是素数*/
v_result number; /*是否为素数,1为素数,0为非素数*/
jnumber; /*从2到i-1取模,如果能被整除就不是素数*/
begin
for i in 1 .. 100 loop
j:= 2;
v_result := 1;
loop
if mod(i, j) = 0 and ij then
v_result := 0;
end if;
j := j1;
exit when j = i;
end loop;
if v_result = 1 then
dbms_output.put_line(i);
end if;
end loop;
end;
【oracle怎么求素数 oraclesum函数怎么用】oracle怎么求素数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oraclesum函数怎么用、oracle怎么求素数的信息别忘了在本站进行查找喔 。

    推荐阅读