Executing...
Test 1: TEST OK [0.000 secs, 204 KB]
Test 2: TEST OK [0.011 secs, 208 KB]
Test 3: TEST OK [0.000 secs, 204 KB]
Test 4: TEST OK [0.000 secs, 204 KB]
Test 5: TEST OK [0.000 secs, 204 KB]
Test 6: TEST OK [0.000 secs, 204 KB]
Test 7: TEST OK [0.000 secs, 204 KB]
Test 8: TEST OK [0.000 secs, 208 KB]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | { ID:cxj6661 PROB:palsquare LANG:PASCAL } //By Ceeji //Date: 2009-6-1 //Type: NO //Resource: USACO 1.2 Program palsquare; Const fin='palsquare.in'; fou='palsquare.out'; Var i,b:longint; Function translate(i:longint):string; var s:string; j,p,k:longint; begin if i=0 then exit('0'); s:=''; j:=i; while true do begin p:=j div b; k:=j-p*b; j:=p; if (p=0) then begin if k<10 then s:=chr(48+k)+s else s:=chr(55+k)+s; exit(s); end; if k<10 then s:=chr(48+k)+s else s:=chr(55+k)+s; end; if s='' then exit('0'); end; Function ishuiwen(s:string):boolean; var i,l:longint; s2:string; begin l:=length(s); s2:=''; for i:=l downto 1 do begin s2:=s2+s[i]; end; if s2=s then exit(true) else exit(false); end; begin assign(input,fin); reset(input); assign(output,fou); rewrite(output); readln(b); close(input); for i:=1 to 300 do begin if ishuiwen(translate(i*i)) then writeln(translate(i),' ',translate(i*i)); end; close(output); end. |