23075 绝对素数判定

题目描述

绝对素数的定义:如果一个正整数P为素数,且其反序也为素数,那么P就为绝对素数。

例如,11,13均为绝对素数,因为11的反序还是为11,13的反序为31也为素数。

输入格式

输入一个整数n

输出格式

如果n是绝对素数,则输出Yes, 否则输出No

样例

样例输入

31
样例输出

Yes
数据范围与提示

n <= 1000000

分类标签

[函数]

C++题解代码

#include <bits/stdc++.h>
using namespace std;

int a;
int b;
int c;
bool d;


bool fn2(int y) {
  c = sqrt(y);
  for (int j = 2; j <= c; j++) {
    if ((y%j) == 0) {
      return false;
    }
  }
  return true;
}

// The main procedure
int main() {
  cin>>a;
  b = 0;
  d = false;
  if (fn2(a)) {
    while (a > 0) {
      b = ((b*10)+(a%10));
      a = (a/10);
    }
    if (fn2(b)) {
      d = true;
    }
  }
  if (d) {
    cout<<"Yes";
  } else {
    cout<<"No";
  }
  return 0;
}

Blockly题解代码图片