File: knuth-def.tex

package info (click to toggle)
texlive-lang 2022.20230122-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,447,264 kB
  • sloc: perl: 61,377; xml: 53,781; makefile: 4,525; sh: 4,338; ansic: 2,892; python: 2,861; ruby: 1,031; lisp: 750; awk: 649; java: 159; sed: 142; csh: 25
file content (20 lines) | stat: -rw-r--r-- 624 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
\newif\ifprime      \newif\ifunknown
\newcount\n         \newcount\p
\newcount\d         \newcount\a

\def \primes#1{2,~3\n=#1 \advance \n by-2  \p=5 
  \loop \ifnum \n>0 \printifprime \advance \p by2 \repeat}
  
\def \printp{, \ifnum \n=1 and~\fi 
  \number \p \advance \n by -1 }

\def \printifprime{\testprimality \ifprime\printp\fi}

\def \testprimality{{\d=3 \global \primetrue
   \loop \trialdivision \ifunknown \advance \d by2 \repeat}}
   
\def \trialdivision{\a=\p \divide \a by\d
  \ifnum \a>\d \unknowntrue \else \unknownfalse \fi
  \multiply \a by\d \ifnum \a=\p \global \primefalse \unknownfalse \fi}

\endinput