素数回文
代码部分:
#include
#include
#include
// 定义长整型别名
typedef long long ll;
// 素数判断函数
ll pan(ll x) {
if (x == 1) return 1; // 1不是素数
if (x == 2) return 0; // 2是素数
for (ll i = 2; i <= sqrt(x); i++) {
if (x % i == 0) return 1; // 如果找到因子,则不是素数
}
return 0; // 没有找到因子,是素数
}
// 全局变量,用于存储数字的逆序
long long o = 0;
// 计算数字的逆序
long long hui(long long a) {
long long t[9];
memset(t, 0, sizeof(t)); // 初始化数组
t[0] = 1;
for (int i = 1; i < 9; i++) {
t[i] = 10 * t[i - 1]; // 计算10的幂
}
for (int i = 0; i < 9; i++) {
if (a / t[i] > 0 && a / t[i] <= 9) {
o = a * t[i];
for (int j = i - 1; j >= 0; j--) {
a /= 10;
o += a % 10 * t[j];
}
}
}
return o;
}
int main() {
ll t;
scanf("%lld", &t); // 读取数字
if (pan(hui(t))) {
printf("noprime\n"); // 如果逆序数不是素数,则输出noprime
} else {
printf("prime\n"); // 如果逆序数是素数,则输出prime
}
return 0;
}
知识点:
1. **类型定义**:使用 `typedef` 定义 `ll` 作为 `long long` 的别名。
2. **数学函数**:使用 `math.h` 中的 `sqrt` 函数计算平方根。
3. **内存操作**:使用 `memset` 函数初始化数组。
4. **数组操作**:计算10的幂并存储在数组中。
5. **循环控制**:使用 `for` 循环遍历数组和计算逆序数。
6. **条件判断**:使用 `if` 语句判断数字是否为素数。
7. **输入输出**:使用 `scanf` 和 `printf` 函数进行输入输出操作。
代码部分:
#include
#include
#include
// 定义长整型别名
typedef long long ll;
// 素数判断函数
ll pan(ll x) {
if (x == 1) return 1; // 1不是素数
if (x == 2) return 0; // 2是素数
for (ll i = 2; i <= sqrt(x); i++) {
if (x % i == 0) return 1; // 如果找到因子,则不是素数
}
return 0; // 没有找到因子,是素数
}
// 全局变量,用于存储数字的逆序
long long o = 0;
// 计算数字的逆序
long long hui(long long a) {
long long t[9];
memset(t, 0, sizeof(t)); // 初始化数组
t[0] = 1;
for (int i = 1; i < 9; i++) {
t[i] = 10 * t[i - 1]; // 计算10的幂
}
for (int i = 0; i < 9; i++) {
if (a / t[i] > 0 && a / t[i] <= 9) {
o = a * t[i];
for (int j = i - 1; j >= 0; j--) {
a /= 10;
o += a % 10 * t[j];
}
}
}
return o;
}
int main() {
ll t;
scanf("%lld", &t); // 读取数字
if (pan(hui(t))) {
printf("noprime\n"); // 如果逆序数不是素数,则输出noprime
} else {
printf("prime\n"); // 如果逆序数是素数,则输出prime
}
return 0;
}
知识点:
1. **类型定义**:使用 `typedef` 定义 `ll` 作为 `long long` 的别名。
2. **数学函数**:使用 `math.h` 中的 `sqrt` 函数计算平方根。
3. **内存操作**:使用 `memset` 函数初始化数组。
4. **数组操作**:计算10的幂并存储在数组中。
5. **循环控制**:使用 `for` 循环遍历数组和计算逆序数。
6. **条件判断**:使用 `if` 语句判断数字是否为素数。
7. **输入输出**:使用 `scanf` 和 `printf` 函数进行输入输出操作。
全部评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享