oracle for循环求1到100之间的素数

如题所述

declare
/*思路:素数是只能被1和它本身整除的数,针对一个数n,从2到n-1对其求模,如果能整除就不是素数*/
v_result number; /*是否为素数,1为素数,0为非素数*/
j number; /*从2到i-1取模,如果能被整除就不是素数*/
begin
for i in 1 .. 100 loop
j := 2;
v_result := 1;
loop
if mod(i, j) = 0 and i <> j then
v_result := 0;
end if;
j := j + 1;
exit when j >= i;
end loop;
if v_result = 1 then
dbms_output.put_line(i);
end if;
end loop;
end;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-21
set serveroutput on
declare
flag boolean;
begin
for i in 2..100 loop
flag:=true;
for j in 2..trunc(i/2) loop
if(mod(i,j)=0) then
flag:=false;
exit;
end if;
end loop;
if(flag) then
dbms_output.put_line(i);
end if;
end loop;
end;本回答被网友采纳
相似回答