X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=pyth.hs;h=a59845bcbb4cda2be94028e2b906a993a7cbb1fc;hb=refs%2Fheads%2Fmaster;hp=82e44fd73369888c334c8ae9d3d8b0d32ee24484;hpb=b18458bc63fb7eb9aa3ccb627f162739157d52b9;p=misc.git diff --git a/pyth.hs b/pyth.hs index 82e44fd..a59845b 100644 --- a/pyth.hs +++ b/pyth.hs @@ -7,7 +7,8 @@ sqr x = x*x -- Find (p,q) such that x=p^2*q and q is square-free sqf' :: Int -> Int -> (Int,Int) sqf' _ 1 = (1,1) -sqf' d x | x `mod` (sqr d) == 0 = (d*p1,q1) +sqf' d x | x < (sqr d) = (1,x) + | x `mod` (sqr d) == 0 = (d*p1,q1) | x `mod` d == 0 = (p2,d*q2) | True = sqf' (d+1) x where (p1,q1) = sqf' d (x `div` (sqr d))