diff options
author | Camil Staps | 2016-01-25 10:05:39 +0100 |
---|---|---|
committer | Camil Staps | 2016-01-25 10:05:39 +0100 |
commit | fee5df168f2b592cc3f657b26b150e195c7553aa (patch) | |
tree | aeade0d79baa6203f74a6f55059cd7c39c3bb972 | |
parent | Initial commit (diff) |
primes & composites
-rw-r--r-- | composites-golfed.tex | 7 | ||||
-rw-r--r-- | composites.tex | 52 | ||||
-rw-r--r-- | primes.tex | 54 |
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 + |