首页 > 其他分享 >OJ刷题之旅

OJ刷题之旅

时间:2023-04-20 21:32:59浏览次数:45  
标签:11 OJ 是否是 素数 num 返回值 刷题 回文

题目描述

求11到n之间(包括n),既是素数又是回文数的整数有多少个。

输入

一个大于11小于1000的整数n。

输出

11到n之间的素数回文数个数。

样例

输入 23

输出 1

提示 回文数指左右对称的数,如:292,333。 来源/分类 循环结构

OJ刷题之旅_循环结构

题解

#include <stdio.h>

int is_prime(int num) {
    int i;
    if (num == 2 || num == 3) {
        return 1;
    }
    if (num == 1 || num % 2 == 0) {
        return 0;
    }
    for (i = 3; i * i <= num; i += 2) {
        if (num % i == 0) {
            return 0;
        }
    }
    return 1;
}

int is_palindrome(int num) {
    int rev = 0, tmp = num;
    while (tmp != 0) {
        rev = rev * 10 + tmp % 10;
        tmp /= 10;
    }
    return num == rev;
}

int main() {
    int n, count = 0, i;
    scanf("%d", &n);
    for (i = 11; i <= n; i++) {
        if (is_prime(i) && is_palindrome(i)) {
            count++;
        }
    }
    printf("%d\n", count);
    return 0;
}


这个题目要求找到11到n之间(包括n)既是素数又是回文数的整数个数。我们可以先写两个函数 is_primeis_palindrome 来判断一个数字是否是素数和是否是回文数。

  • 函数 is_prime 判断一个数字是否是素数,返回值为 1 表示是素数,返回值为 0 表示不是素数。
  • 函数 is_palindrome 判断一个数字是否是回文数,返回值为 1 表示是回文数,返回值为 0 表示不是回文数。

main 函数中,我们先读入输入的整数 n。然后使用循环遍历 11 到 n 之间的每个数字,对于每个数字,如果它既是素数又是回文数,就将计数器 count 加 1。最后输出 count 的值即可。

标签:11,OJ,是否是,素数,num,返回值,刷题,回文
From: https://blog.51cto.com/u_16060410/6210679

相关文章

  • nyoj 坦克大战 284 (bfs) 模板
    坦克大战1000ms |          内存限制:655353Manyofushadplayedthegame"Battlecity"inourchildhood,andsomepeople(likeme)evenoftenplayitoncomputernow.Whatwearediscussingisasimpleeditionofthisgame.Givena......
  • LOJ #6564 - 最长公共子序列(bitset 求 LCS)
    怎么全天下就我没见过?被薄纱了/ll还是考虑从朴素的DP入手优化。不难发现对于固定的\(i\),相邻的\(dp_{i,j}\)的差要么是\(0\)要么是\(1\),也就是说从压位的考虑角度可能很有前途。因此我们转而维护\(dp_{i,j}\)的差分数组\(v_{i,j}=dp_{i,j}-dp_{i,j-1}\)。考虑新添加一......
  • scrapy startproject tutorial 这句话在哪输入cmd?
    大家好,我是皮皮。一、前言前几天在Python钻石交流群【未央.】问了一个Python网络爬虫的问题,这里拿出来给大家分享下。课程截图如下:官网的截图如下:二、实现过程这里【甯同学】给了提示,不过对于新手来说,还是不太容易上手的。进入终端之后,我们再启动项目,如下:正常来说,这样就可以启动成......
  • Integer Inquiry hdoj 1047
    IntegerInquiryTimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):15216    AcceptedSubmission(s):3909ProblemDescriptionOneofthefirstusersofBIT'snewsupercomputerwasChipDill......
  • Build was configured to prefer settings repositories over project repositories b
    首先上链接:stackoverflow的正解下载了最新版的狐狸图标的AS,4.1.2版本,新建的项目默认使用的最新版本7.0.2的gradle, 在项目的build.gradle中添加项目编译需要的依赖,allprojects{repositories{google()jcenter()}} 然后,报错,编译不过。提示也说了,构建被配......
  • 关于报错:Error adding module to project: setSdk: sdk '1.8' type 'JavaSDK' is not
    问题描述:Erroraddingmoduletoproject:setSdk:sdk'1.8'type'JavaSDK'isnotregisteredinProjectJdkTable(图片来自贴吧,看到有一个人问这个问题,然后自己碰到了但是忘了截图)说明当前项目在“ProjectJdkTable”里面是没有配置sdk1.8的。百度翻译过来就是:未在Project......
  • hdoj Lining Up 1432 (数学)直线过最多点问题
    LiningUpTimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):1251    AcceptedSubmission(s):356ProblemDescription``HowamIevergoingtosolvethisproblem?"sa......
  • hdoj 夹角有多大(题目已修改,注意读题) 2076 (数学&转换)
    夹角有多大(题目已修改,注意读题)TimeLimit:1000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):13233    AcceptedSubmission(s):5214ProblemDescription时间过的好快,一个学期就这......
  • hdoj Snooker 2060 (水)
    SnookerTimeLimit:1000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):9639    AcceptedSubmission(s):4083ProblemDescriptionbackground:PhiliplikestoplaytheQQgameof......
  • hdoj Simply Syntax 1433 (模拟)
    SimplySyntaxTimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):409    AcceptedSubmission(s):202ProblemDescriptionInthelandofHedoniatheofficiallanguage......