fork download
  1. import sys
  2.  
  3. def is_palindrome(n):
  4. s = str(n)
  5. return s == s[::-1]
  6.  
  7. palindrome_list = range(1, 10)
  8. fs_list = []
  9.  
  10. for n in range(2, 14/2 + 1):
  11. half_n = n / 2;
  12. is_even_len = (n == half_n + half_n)
  13. start = 10 ** (half_n - 1);
  14. end = 10 ** half_n;
  15. val = start;
  16.  
  17. while val < end:
  18. val_s = str(val)
  19. val_s_rev = val_s[::-1]
  20.  
  21. if is_even_len:
  22. palindrome = int(val_s + val_s_rev)
  23. palindrome_list.append(palindrome)
  24. else:
  25. for i in range(0, 10):
  26. palindrome = int(val_s + str(i) + val_s_rev)
  27. palindrome_list.append(palindrome)
  28.  
  29. for i in range(len(palindrome_list)):
  30. palindrome_sqr = palindrome_list[i] ** 2
  31.  
  32. if is_palindrome(palindrome_sqr):
  33. fs_list.append(palindrome_sqr)
  34.  
  35. palindrome_list = []
  36. val += 1
  37.  
  38. case_cnt = int(sys.stdin.readline());
  39.  
  40. for t in range(1, case_cnt + 1):
  41. line = sys.stdin.readline();
  42. start, end = map(int, line.split(' '));
  43. fs_cnt = len([n for n in fs_list if n >= start and n <= end])
  44. print "Case #%d: %d" % (t, fs_cnt)
  45.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty