diff options
Diffstat (limited to 'others/volume1/112.pas')
-rw-r--r-- | others/volume1/112.pas | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/others/volume1/112.pas b/others/volume1/112.pas new file mode 100644 index 0000000..0dec65e --- /dev/null +++ b/others/volume1/112.pas @@ -0,0 +1,39 @@ +uses clib; + +var + a, b: int64; + i, j: int32; + p: array[2..999983] of boolean; + primes: intar; + +begin + for i := 2 to 999983 do + p[i] := true; + for i := 2 to 997 do + for j := 2 to 999983 div i do + p[i * j] := false; + j := 0; + setlength(primes, 78498); + for i := 2 to 999983 do + if p[i] then + begin + primes[j] := i; + inc(j) + end; + + repeat + readln(a, b); + a := a * b div sqr(gcd(a, b)); + b := 0; + for i := 0 to bisect_left(primes, trunc(sqrt(a))) do + while a mod primes[i] = 0 do + begin + a := a div primes[i]; + b := b + 1 + end; + if a = 1 then + writeln(b) + else + writeln(b + 1) + until eof(input) +end. |