提交记录 #291
提交时间:2024-11-19 19:58:44
语言:c
状态:Accepted
编译情况:编译成功
固定测试点#1:
固定测试点#2:
固定测试点#3:
固定测试点#4:
附加测试点暂不可用
43【学长出题】侯瑞杰:回文素数——用函数
#include <stdio.h>
#include <string.h>
// 判断一个数是否为素数
int isPrime(int n) {
if (n <= 1) return 0; // 1 及以下的数不是素数
if (n == 2) return 1; // 2 是素数
if (n % 2 == 0) return 0; // 偶数不是素数
// 检查从 3 到 sqrt(n) 的所有奇数
for (int i = 3; i * i <= n; i += 2) {
if (n % i == 0) return 0;
}
return 1;
}
// 判断一个数是否为回文数
int isPalindrome(int n) {
char str[20]; // 假设数字最多有20位
sprintf(str, "%d", n); // 将数字转换为字符串
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
return 0; // 不是回文数
}
}
return 1; // 是回文数
}
int main() {
int a, b;
scanf("%d %d", &a, &b);
for (int i = a; i <= b; i++) {
if (isPrime(i)) {
if (isPalindrome(i)) {
printf("%d\n", i);
}
}
}
return 0;
}