Yarodash

Mirron_numbers

Feb 12th, 2020
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.67 KB | None | 0 0
  1. var prime:array[1..10000] of boolean;
  2.     i, j, l, r, answer, reversed:longint;
  3.  
  4. //Цифра в символ
  5. function getChar(number:longint):char;
  6. begin
  7.   getChar := chr(number+ord('0'));
  8. end;
  9.  
  10. //Символ в цифру
  11. function getInt(ch:char):longint;
  12. begin
  13.   getInt := ord(ch)-ord('0');
  14. end;
  15.  
  16. //Строка в обратную ('abcd' -> 'dcba')
  17. function reverse(str:string):string;
  18. var reverse_str:string;
  19.     i:longint;
  20. begin
  21.   reverse_str := '';
  22.   for i := 1 to length(str) do
  23.     reverse_str := str[i] + reverse_str;  
  24.   reverse := reverse_str;
  25. end;
  26.  
  27. //Число в строку
  28. function getString(number:longint):string;
  29. var str:string;
  30. begin
  31.   str := '';
  32.   while (number > 0) do begin
  33.     str := getChar(number mod 10) + str;
  34.     number := number div 10;
  35.   end;
  36.   getString := str;
  37. end;
  38.  
  39. //Строка в число
  40. function getNumber(str:string):longint;
  41. var i, number:longint;
  42. begin
  43.   number := 0;
  44.   for i := 1 to length(str) do
  45.     number := number*10 + getInt(str[i]);
  46.   getNumber := number;
  47. end;
  48.  
  49. //Обратное к данному число
  50. function reverseNumber(number:longint):longint;
  51. begin
  52.   reverseNumber := getNumber( reverse( getString( number ) ) );
  53. end;
  54.  
  55. begin  
  56.   read(l, r);
  57.  
  58.   //Решето Эратосфена
  59.   for i := 2 to 10000 do prime[i] := true;
  60.   for i := 2 to 10000 do
  61.     if prime[i] then
  62.       for j := 2 to 10000 div i do
  63.         prime[i*j] := false;
  64.  
  65.   //Проверка на "зеркальность"
  66.   for i := l to r do begin
  67.     reversed := reverseNumber(i);
  68.     if (prime[i]) and (prime[reversed]) then
  69.           answer := answer + 1;
  70.   end;
  71.  
  72.   writeln(answer);
  73. end.
Advertisement
Add Comment
Please, Sign In to add comment