fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int a, b;
  6. int number1, number2;// переменные для хранения текущего числа из промежутка и "зеркального" соответственно
  7. int counter = 0;// счетчик количества "зеркально простых" чисел
  8. cin >> a >> b;
  9. if(a > b){
  10. a += b;
  11. b = a - b;
  12. a -= b;
  13. }// меняем местами границы промежутка, если они введены в неправильном порядке
  14. if (a == 1)
  15. counter--;// декрементируем счетчик, если в промежуток попадает число 1, которое не является простым
  16. for (int i = a; i <= b; i++){
  17. number1 = i;
  18. bool f1 = true;// флаг выполнения условия для number1
  19. bool f2 = true;// флаг выполнения условия для number2
  20. for (int j = 2; j*j <= number1; j++){
  21. f1 = number1%j;
  22. if (!f1)
  23. break;
  24. }// проверяем является ли number1 простым
  25. if (f1){
  26. number2 = 0;
  27. while (number1 > 0){
  28. number2 = number2*10 + number1%10;
  29. number1 /= 10;
  30. }// собираем число "зеркальное" текущему
  31. for (int j = 2; j*j <= number2; j++){
  32. f2 = number2%j;
  33. if (!f2)
  34. break;
  35. }// проверяем является ли number2 простым
  36. if (f2)
  37. counter++;// инкрементируем счетчик
  38. }
  39. }
  40. cout << counter;
  41. return 0;
  42. }
Success #stdin #stdout 0s 3460KB
stdin
1 10000
stdout
260