素数回文
代码部分:
#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` 函数进行输入输出操作。
全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务