From 06692c8e1754ac8d5d671160b839723e3610fcf1 Mon Sep 17 00:00:00 2001 From: Matthew Hall Date: Wed, 22 Feb 2023 22:43:54 +1300 Subject: new example: prime factors --- examples/factors-of-n.dsl | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 examples/factors-of-n.dsl (limited to 'examples/factors-of-n.dsl') diff --git a/examples/factors-of-n.dsl b/examples/factors-of-n.dsl new file mode 100644 index 0000000..a5ef2fc --- /dev/null +++ b/examples/factors-of-n.dsl @@ -0,0 +1,19 @@ +''' recursively pushes the prime factors of the int on the top of the stack''' +PROC factors + ''' only proceed if the input is valid ''' + IF DUP 1 < DO + ''' find the smallest number that divides n ''' + 2 WHILE OVER OVER SWAP % 0 != DO 1 + END + ''' print it and find the next factor ''' + DUP . + OVER OVER SWAP / factors + END +END + +PROC MAIN + "Prime factors of 12:" . 12 factors + "Prime factors of 5:" . 5 factors + "Prime factors of 60:" . 60 factors + "Prime factors of 97:" . 97 factors +END + -- cgit v1.2.1