トップページに戻る    次のSQLパズルへ    前のSQLパズルへ

2-3-13 素因数分解

SQLパズル

2704を素因数分解する。

出力結果
素因数分解
------------------
2704=2*2*2*2*13*13


SQL

declare
    work pls_Integer :=2704;
    willOutput varchar2(4000);
begin
    willOutput := to_char(work) || '=';
    for i in 2..2704 Loop
        while mod(work,i) = 0 Loop
            willOutput := willOutput || to_char(i) || '*';
            work := work / i;
        end Loop;
    end Loop;
    DBMS_Output.Put_Line(RTrim(willOutput,'*'));
end;
/


解説

2から、2704の正の平方根までの素数を、
因数に持つかをチェックしてます。