Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var prime:array[1..10000] of boolean;
- i, j, l, r, answer, reversed:longint;
- //Цифра в символ
- function getChar(number:longint):char;
- begin
- getChar := chr(number+ord('0'));
- end;
- //Символ в цифру
- function getInt(ch:char):longint;
- begin
- getInt := ord(ch)-ord('0');
- end;
- //Строка в обратную ('abcd' -> 'dcba')
- function reverse(str:string):string;
- var reverse_str:string;
- i:longint;
- begin
- reverse_str := '';
- for i := 1 to length(str) do
- reverse_str := str[i] + reverse_str;
- reverse := reverse_str;
- end;
- //Число в строку
- function getString(number:longint):string;
- var str:string;
- begin
- str := '';
- while (number > 0) do begin
- str := getChar(number mod 10) + str;
- number := number div 10;
- end;
- getString := str;
- end;
- //Строка в число
- function getNumber(str:string):longint;
- var i, number:longint;
- begin
- number := 0;
- for i := 1 to length(str) do
- number := number*10 + getInt(str[i]);
- getNumber := number;
- end;
- //Обратное к данному число
- function reverseNumber(number:longint):longint;
- begin
- reverseNumber := getNumber( reverse( getString( number ) ) );
- end;
- begin
- read(l, r);
- //Решето Эратосфена
- for i := 2 to 10000 do prime[i] := true;
- for i := 2 to 10000 do
- if prime[i] then
- for j := 2 to 10000 div i do
- prime[i*j] := false;
- //Проверка на "зеркальность"
- for i := l to r do begin
- reversed := reverseNumber(i);
- if (prime[i]) and (prime[reversed]) then
- answer := answer + 1;
- end;
- writeln(answer);
- end.
Advertisement
Add Comment
Please, Sign In to add comment