一 、题目链接
二、题目截图
三、 代码答案:(c语言实现)
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
int isPrime(int a) {
if (a == 0 || a == 1) return 0;
for (int i = 2; i <= sqrt(a); i++) {
if (a % i == 0) return 0;
}
return 1;
}
int isSym(int a) {
int m = a, num = 0;
while (1) {
num += m % 10;
m /= 10;
if (m == 0) break;
num *= 10;
}
return num == a ? 1 : 0;
}
int arr[60];
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
for (int i = 0; i < n; i++) {
if (isPrime(arr[i]) && isSym(arr[i]) && arr[i] < 10000) {
printf("Yes\n");
}
else {
printf("No\n");
}
}
return 0;
}
-
注意x的取值,因为当x = 0, 1 的时候不能直接用循环进行判断是否为素数应该提前声明。
-
判断是否为对称数字的时候 直接将所有所有的数字通过转载相除法一一取出,按照相反位置排列看是否等于其原来的数,相同则是对称数
- 例如: 12321 = 12321 Yes
12345 != 54321 No
- 例如: 12321 = 12321 Yes
希望各位考研上岸,也祝自己复试顺利。