diff --git a/project_euler/problem3.qbl b/project_euler/problem3.qbl new file mode 100644 index 0000000..b9568da --- /dev/null +++ b/project_euler/problem3.qbl @@ -0,0 +1,56 @@ +//valid,6857 +//:END: +import "../std.qbl" + +600851475143 2 divHasLargerPF 3 +while +{ + // n p + req dup 2 req req + + // p n p+2 + swp req + // n p p+2 + divHasLargerPF + // p+2 hasLPF newN + req +} +deq 2 - intToStr println + +function int int => bool int divHasLargerPF +{ + req dup req divIfDivisible + // n newN + 1 req dup + // newN 1 n newN + == req req + // is1 n newN + if + { + false req deq + } + else + { + true deq req + } +} + +function int int => int divIfDivisible +{ + // p n + dup req dup swp + // p n p n + divmod 0 + // p n p/n p%n 0 + req req req == + // p n p/n isDiv + req req req + if + { + deq req divIfDivisible + } + else + { + req deq deq + } +} +