+        2         0        50        10            1672

   1+                                     2k i1k 1k 1k 50k           f  c1 to
   2+                                     ci1 z 1j                   f  c50=1
    +                                     i1 z 1                     f  n=1
   3+                                     i1 z i1 s 1                f  n=n+1
    +                                     g 5 if i1 w 50             f  gt 50
    +                                     g 3 if ci1 u 0j            f  c(n)=0
    +                                     i2 z i1                    f  m=n
   4+                                     i2 z i2 s i1               f  m=m+n
    +                                     g 3 if i2 w 50             f  gt 50
    +                                     ci2 z 0j                   f  c(m)=0
    +                                     g 4                        f  goto 4
   5+                                     i1 z 1                     f  n=1
   6+                                     i1 z i1 s 1                f  n=n+1
    +                                     g 10 if i1 w 50            f  gt 50
    +                                     g 8 if ci1 u 0j            f  c(n)=0
   7+                                     t i1                       f  pch n
   8+                                     g 6                        f  goto 6
  10+                                     h                         ff  stop


prime number generator using the sieve of eratosthenes
converted to ibm 650 IT compliler 

note: ibm 650 terminates card reading on "ff" statement (numbered as 10), so 
it is safe to add text and comments below that


 IT syntax             IT notation in manual       c-like equivalent syntax

 1+ 2k i1k 1k 1k 50k   1: 2,i1,1,1,50,             for(num=1,num<=50;num++)
 2+ ci1 z 1j           2: ci1 <- 1.                    prime(num) = 1.0 
                                                   
  + i1 z 1                i1 <- 1                  num=1

 3+ i1 z i1 s 1        3: i1 <- i1 + 1      loop1: num++
  + g 5 if i1 w 50        g 5 if i1 >= 50          if num >= 50 goto loope 

  + g 3 if ci1 u 0j       g 3 if ci1 = 0.          if prime(num)=0 goto loop1
  + i2 z i1               i2 <- i1                 mult=num   

 4+ i2 z i2 s i1       4: i2 <- i2 + i1     loop2: mult=mult+num
  + g 3 if i2 w 50        g 3 if i2 >= 50          if mult >= 50 goto loop1

  + ci2 z 0j              ci2 <- 0.                prime(mult) = 0.0
  + g 4                   g 4                      goto loop2

 5+ i1 z 1             5: i1 <- 1           loope: num = 1
 6+ i1 z i1 s 1           i1 <- i1 + 1       prt1: num++
  + g 10 if i1 w 50       g 10 if i1 >= 50         if num >= 50 goto prt3

  + g 8 if ci1 u 0j       g 8 if ci1 = 0.          if prime(num)=0 goto prt2
 7+ t i1                  t i1                     punch num
 8+ g 6                   g 6                prt2: goto prt1
10+ h                     h                  prt3: end

control card is calculated as follows

number of i integer variables: 2 (i1 and i2)
number of y float variables: 0
number of c float variables: 50 (ci1 ranges from c1 to c50)
higher statement number: 10
using run time package p1 (265 words)
mem avail N = 1999 - (2 + 0 + 50 + 10 + 265) = 1672

