summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps2016-01-26 08:55:15 +0100
committerCamil Staps2016-01-26 08:55:15 +0100
commitc38acf81e2d6130ff440163aeefa4cf370f529a5 (patch)
tree5414b529039dcfbbf09c7f3fea6fba6075d482f7
parentcensus -1 (diff)
Ulam triangleHEADmaster
-rw-r--r--.gitignore3
-rw-r--r--ulam-triangular-golfed.tex2
-rw-r--r--ulam-triangular.tex76
3 files changed, 81 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 01aeab1..e9edbcb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,3 +32,6 @@ _minted-*/
Clean System Files/
census
+# Images
+*.png
+
diff --git a/ulam-triangular-golfed.tex b/ulam-triangular-golfed.tex
new file mode 100644
index 0000000..c9d0794
--- /dev/null
+++ b/ulam-triangular-golfed.tex
@@ -0,0 +1,2 @@
+\documentclass{standalone}\usepackage{pgf}\let\z\let\z\e\advance\z\f\ifnum\z\h\the\z\a\newcount\a\i\a\j\a\l\a\x\a\y\a\p\a\q\a\n\i=1\l=1\p=-1\q=1\def\m#1{\e\i by1\e\j by1\e\x by\h\p\e\y by\h\q\pgfmathparse{isprime(\h\i)}\f\pgfmathresult=1\pgfpathcircle{\pgfpoint{\h\x cm}{\h\y cm}}3pt\fi\f\j=\l\e\l by1\j=0\f\p=1\p=-1\q=1\else\f\p=-1\p=0\q=-1\else\p=1\q=0\fi\fi\fi\f#1>0\e#1by-1\m#1\fi}\begin{document}\begin{pgfpicture}\pgftransformcm10{cos(60)}{sin(60)}\pgfpointorigin\n=4000\m\n\pgfusepath{fill}\end{pgfpicture}\end{document}
+
diff --git a/ulam-triangular.tex b/ulam-triangular.tex
new file mode 100644
index 0000000..8e4e0e1
--- /dev/null
+++ b/ulam-triangular.tex
@@ -0,0 +1,76 @@
+ \documentclass[border=10cm]{standalone}
+
+ \usepackage{pgf}
+
+ \newcount\ulami
+ \newcount\ulamj
+ \newcount\ulamlen
+
+ \newcount\ulamx
+ \newcount\ulamy
+ \newcount\ulamdx
+ \newcount\ulamdy
+
+ \ulami=1 %
+ \ulamj=0 %
+ \ulamlen=1 %
+ \ulamdx=-1 %
+ \ulamdy=1 %
+ \ulamx=0 %
+ \ulamy=0 %
+
+ \def\ulamplot#1{%
+ \advance\ulami by 1 %
+ \advance\ulamj by 1 %
+
+ \advance\ulamx by \the\ulamdx %
+ \advance\ulamy by \the\ulamdy %
+
+ \pgfpathmoveto{\pgfpoint{\the\ulamx cm}{\the\ulamy cm}}
+
+ \pgfmathparse{isprime(\the\ulami)}
+ \let\r=\pgfmathresult
+ \ifnum\r=1
+ \pgfpathcircle{\pgfpoint{\the\ulamx cm}{\the\ulamy cm}}{5pt}
+ \fi
+
+ \ifnum\ulamj=\the\ulamlen %
+ \advance\ulamlen by 1 %
+ \ulamj=0 %
+ \ifnum\ulamdx=1 %
+ \ulamdx=-1 %
+ \ulamdy=1 %
+ \else%
+ \ifnum\ulamdx=-1 %
+ \ulamdx=0 %
+ \ulamdy=-1 %
+ \else%
+ \ulamdx=1 %
+ \ulamdy=0 %
+ \fi
+ \fi
+ \fi
+
+ \ifnum#1>0 %
+ \advance#1 by -1 %
+ \ulamplot{#1}%
+ \fi
+ }
+
+ \begin{document}
+
+ \begin{pgfpicture}
+ \pgfmathsetmacro{\x}{cos(60)}
+ \pgfmathsetmacro{\y}{sin(60)}
+ \pgftransformcm{1}{0}{\x}{\y}{\pgfpointorigin}
+
+ \pgfpathmoveto{\pgfpointorigin}
+ \color{blue}
+ \newcount\ulamn
+ \ulamn=400
+ \ulamplot{\ulamn}
+ \pgfusepath{stroke,fill}
+ \end{pgfpicture}
+
+ \end{document}
+