From 6085eb0d6e60116817e1677860b5f845c538b520 Mon Sep 17 00:00:00 2001 From: 0x4261756D Date: Sat, 23 Dec 2023 22:10:07 +0100 Subject: [PATCH] Add solution to project euler's problem 3 --- project_euler/problem3.qbl | 56 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 project_euler/problem3.qbl 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 + } +} +