summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps2016-01-25 10:05:39 +0100
committerCamil Staps2016-01-25 10:05:39 +0100
commitfee5df168f2b592cc3f657b26b150e195c7553aa (patch)
treeaeade0d79baa6203f74a6f55059cd7c39c3bb972
parentInitial commit (diff)
primes & composites
-rw-r--r--composites-golfed.tex7
-rw-r--r--composites.tex52
-rw-r--r--primes.tex54
3 files changed, 113 insertions, 0 deletions
diff --git a/composites-golfed.tex b/composites-golfed.tex
new file mode 100644
index 0000000..3e038fa
--- /dev/null
+++ b/composites-golfed.tex
@@ -0,0 +1,7 @@
+\newcount\a\newcount\b\newcount\c\newcount\n\newcount\p\newcount\q\let\v\advance\let\e\else\let\z\ifnum
+\def\d#1:#2:#3:{\z#1>#2\v#1 by-#2\d#1:#2:#3:\e\z#1=#2#3=1\e#3=0\fi\fi}
+\def\i#1:#2:#3:{#3=0\z#1>#2\a=#1\d\a:#2:\c:
+\z\c=0\b=#2\v\b by 1\i#1:\the\b:#3:\e#1\par\fi\e#3=1\fi}
+\def\l#1:#2:#3:#4:{\i\the#1:2:#4:
+\z#4=0\v#2 by 1\fi\z#2<#3\v#1 by 1\l#1:#2:#3:#4:\fi}
+\l\p:\n:12:\q:\end
diff --git a/composites.tex b/composites.tex
new file mode 100644
index 0000000..eeac38f
--- /dev/null
+++ b/composites.tex
@@ -0,0 +1,52 @@
+\newcount\a
+\newcount\b
+\newcount\c
+\newcount\n
+\newcount\p
+\newcount\q
+
+\def\div#1:#2:#3:{%
+ \ifnum#1>#2 %
+ \advance#1 by-#2 %
+ \div#1:#2:#3:%
+ \else%
+ \ifnum#1=#2 %
+ #3=1%
+ \else%
+ #3=0%
+ \fi%
+ \fi%
+}
+
+\long\def\isprime#1:#2:#3:{%
+ #3=0%
+ \ifnum#1>#2 %
+ \a=#1 %
+ \div\a:#2:\c: %
+ \ifnum\c=0 %
+ \b=#2 %
+ \advance\b by 1 %
+ \isprime#1:\the\b:#3:%
+ \else
+ #1\par%
+ \fi%
+ \else%
+ #3=1%
+ \fi%
+}
+
+\def\listprimes#1:#2:#3:#4:{%
+ \isprime\the#1:2:#4: %
+ \ifnum#4=0 %
+ \advance#2 by 1 %
+ \fi
+ \ifnum#2<#3 %
+ \advance#1 by 1 %
+ \listprimes#1:#2:#3:#4: %
+ \fi
+}
+
+\listprimes\p:\n:11:\q:
+
+\end
+
diff --git a/primes.tex b/primes.tex
new file mode 100644
index 0000000..f00a2e8
--- /dev/null
+++ b/primes.tex
@@ -0,0 +1,54 @@
+\newcount\a
+\newcount\b
+\newcount\c
+\newcount\n
+\newcount\p
+\newcount\q
+
+\def\div#1#2#3{%
+ \ifnum#1>#2 %
+ \advance#1 by-#2 %
+ \div{#1}{#2}{#3}%
+ \else%
+ \ifnum#1=#2 %
+ #3=1%
+ \else%
+ #3=0%
+ \fi%
+ \fi%
+}
+
+\long\def\isprime#1#2#3{%
+ #3=0%
+ \ifnum#1>#2 %
+ \a=#1 %
+ \div{\a}{#2}{\c} %
+ \ifnum\c=0 %
+ \b=#2 %
+ \advance\b by 1 %
+ \isprime{#1}{\the\b}{#3}%
+ \fi%
+ \else%
+ #1\par%
+ #3=1%
+ \fi%
+}
+
+\def\listprimes#1#2#3#4{%
+ \isprime{\the#1}{2}{#4} %
+ \ifnum#4=1 %
+ \the#1\par %
+ \advance#2 by 1 %
+ \fi
+ \ifnum#2<#3 %
+ \advance#1 by 1 %
+ \listprimes{#1}{#2}{#3}{#4} %
+ \fi
+}
+
+\n=0
+\p=2
+\listprimes{\p}{\n}{10}{\q}
+
+\end
+