1. 程式人生 > >【Oracle】PL/SQL實現列印1-100中的素數

【Oracle】PL/SQL實現列印1-100中的素數

--方法一

declare

    i number(4);--儲存1-100中所有的數(用作被除數)
    j number(4) := 1;--儲存除數
    z number(4) := 0--儲存被整除的次數;
begin
    for i in 1..100 loop
        while j <= i loop
            if mod(i,j) = 0 then 
                z := z + 1;
            end if;
            j := j + 1;
        end loop; 
        j := 0;
        if z = 2 then 
            dbms_output.put_line(i);         
        end if;  
        z := 0; 
    end loop;
end;

/

--方法二

declare
 v_number number(3);
 v_temp number(3):=1;
begin 
 for v_number in 1..100 loop                   
     v_temp:=1;
     while v_temp<v_number loop                
            v_temp:= v_temp+1;
            if v_temp=v_number then
               dbms_output.put_line(v_number);
            end if;
            if mod(v_number,v_temp)=0 then --如果出現被除本身和1以外的數整除則退出迴圈並列印
               exit;
            end if; 
     end loop;
 end loop;
end