素数回文
代码部分:
#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 &amp;&amp; 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(&quot;%lld&quot;, &amp;t); // 读取数字

    if (pan(hui(t))) {
        printf(&quot;noprime\n&quot;); // 如果逆序数不是素数,则输出noprime
    } else {
        printf(&quot;prime\n&quot;); // 如果逆序数是素数,则输出prime
    }
    return 0;
}
知识点:
1. **类型定义**:使用 `typedef` 定义 `ll` 作为 `long long` 的别名。
2. **数学函数**:使用 `math.h` 中的 `sqrt` 函数计算平方根。
3. **内存操作**:使用 `memset` 函数初始化数组。
4. **数组操作**:计算10的幂并存储在数组中。
5. **循环控制**:使用 `for` 循环遍历数组和计算逆序数。
6. **条件判断**:使用 `if` 语句判断数字是否为素数。
7. **输入输出**:使用 `scanf` 和 `printf` 函数进行输入输出操作。
全部评论

相关推荐

程序员牛肉:1.大头肯定是院校问题,这个没啥说的。 2.虽然有实习,但是实习的内容太水了,在公司待了七个月的时间,看起来就只做了jwt和接入redis。爬取新闻,数据导入。这几个需求值得你做七个月吗?这不就是三四个月的工作量吗?我要是面试官的话真心会认为你能力不太行。所以既然有实习了,一定要好好写,像是Swagger这种东西是真没必要写上去,就拉一个包的事情。 3.我个人觉得话,在校生不要把自己当社招看,除非你的项目是特别牛逼,特别有名的含金量,否则不要写这种密密麻麻的一串子工作职责。你的项目只有一个作用,就是供面试官从中来抽取八股对你进行拷打。 但是你现在这个看不来什么技术点,可以改一下,详细表述一下你用什么技术实现了什么功能,在实现这个功能的过程中,你解决了什么难题。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务