トップページに戻る    次のProblemへ    前のProblemへ

Problem3 600851475143の最大の素因数

13195の素因数は5、7、13、29である。
600851475143の素因数のうち最大のものを求めよ。


SQL

declare
    --TargetVal pls_Integer := 13195;
    TargetVal number(12) := 600851475143;
    Warukazu pls_Integer := 2;

    MaxSoinsuu pls_Integer := 1;
begin
    While (Warukazu <= TargetVal) Loop
        if mod(TargetVal,Warukazu) = 0 then
            TargetVal := TargetVal / Warukazu;
            MaxSoinsuu := Warukazu;
        else
            Warukazu := Warukazu + 1;
        end if;
    end Loop;
    DBMS_Output.Put_Line('最大の素因数=' || to_char(MaxSoinsuu));
end;
/


実行結果

最大の素因数=6857


解説

pls_Integer型の最大値は、21億のため、
600851475143は、number(12)型で定義する必要があります。

C#での解