home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / LANGUAGS / MODULA2 / PALINDRO.MOD < prev    next >
Text File  |  2000-06-30  |  613b  |  29 lines

  1. (* Find all integers between 1 and 210 whose squares are
  2.    palindromes, e.g. 11^2 = 121, 22^2 = 484. *)
  3.  
  4. MODULE palindromes;
  5.  
  6. FROM InOut IMPORT ReadCard, WriteCard, WriteLn, WriteString;
  7.  
  8. VAR i,j,l,n,r,s: CARDINAL;
  9.     p: BOOLEAN;
  10.     d: ARRAY [1..10] OF CARDINAL;
  11.  
  12. BEGIN
  13.   n := 0;
  14.   REPEAT
  15.     INC(n); s := n*n;
  16.     l := 0;
  17.     REPEAT
  18.       INC(l); r := s DIV 10;
  19.       d[l] := s - 10*r; s := r;
  20.     UNTIL s = 0;
  21.     i := 1; j := l;
  22.     REPEAT
  23.       p := d[i]=d[j];
  24.       INC(i); DEC(j);
  25.     UNTIL (i >= j) OR NOT p;
  26.     IF p THEN WriteCard(n,6); WriteCard(n*n,6); WriteLn END;
  27.   UNTIL n = 210
  28. END palindromes.
  29.