判断可逆素数.c 725 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include <stdio.h>
  2. int is_prime(int num);
  3. int is_reversible_prime(int num);
  4. int is_prime(int num) {
  5. int i;
  6. if (num <= 1) return 0;
  7. if (num == 2) return 1;
  8. if (num % 2 == 0) return 0;
  9. for (i = 3; i * i <= num; i += 2) {
  10. if (num % i == 0) return 0;
  11. }
  12. return 1;
  13. }
  14. int is_reversible_prime(int num) {
  15. if (!is_prime(num)) return 0;
  16. int reversed_num = 0;
  17. int temp = num;
  18. while (temp > 0) {
  19. reversed_num = reversed_num * 10 + temp % 10;
  20. temp /= 10;
  21. }
  22. return is_prime(reversed_num);
  23. }
  24. int main() {
  25. int num;
  26. scanf("%d", &num);
  27. if (is_reversible_prime(num)) {
  28. printf("yes\n");
  29. } else {
  30. printf("no\n");
  31. }
  32. return 0;
  33. }