栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

学习c语言练习题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学习c语言练习题

题目如下:

回文素数
所谓回文素数是指对一个素数n,从左到右和从右到左读是相同的,这样的数就称为回文素数,例如11,101,313等。编程计算并输出不超过n(100<=n<=1000)的回文素数,并统计这些回文素数的个数,其中n的值从键盘输入。

程序运行示例1
Input n:
100↙
  11
count=1

程序运行示例2
Input n:
1000↙
  11 101 131 151 181 191 313 353 373 383 727 757 787 797 919 929
count=16

输入格式:"%d"
输出格式:
输入提示信息:"Input n:n"
输出格式:"%4d"
          "ncount=%dn"

代码如下:

#include 
int find(int n);//用来寻找素数
int check(int n);//用来判断是否是回文素数
int main()
{
    int n,temp,flag=0,count=0;//初始化变量
    printf("Input n:n");
    scanf("%d",&n);
    for(int i=2;i<=n;i++)
    {
        flag=0;
        temp=find(i);//将找到的素数暂时赋值给temp变量
        flag=check(temp);//将temp变量放入check函数中进行检测,如果是回文数就输出1;不是就输出0
        if(flag)//输出语句
        {
            count++;
            printf("%4d",temp);
        }
    }
    printf("ncount=%dn",count);
}

int find(int n)
{
    int flag;//定义旗帜,方便寻找素数
    for(int i=2;i<=n/2;i++)
    {
        flag=1;
        if(n%i==0)
        {
            flag=0;//如果n能被整除,让flag=0,来表示他不是素数,然后跳出循环
            break;
        }
    }
    if(flag)
    {
        return n;
    }
    else return 0;
}

int check(int n)
{
    if(n==0||n/10==0)//排除是0和个位数的干扰,因为个位数没有回文数。
    {
        return 0;
    }
    int sum=0,temp=n;
    while(n>0)//判断是否是回文数。
    {
        sum=sum*10+n%10;
        n/=10;
    }
    if(temp==sum)//如果反转后的数字和没有反转的数字想等,则是回文数
    {
        return 1;
    }
    else return 0;//不是回文数就输出0
}

运行结果如下:

 欢迎评论区交流

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/836235.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号