11:回文素数

简介: 11:回文素数总时间限制:5000ms内存限制:65536kB描述 一个数如果从左往右读和从右往左读数字是相同的,则称这个数是回文数, 如121,1221,15651都是回文数。给定位数n,找出所有既是回文数又是素数的n位十进制数。

11:回文素数
总时间限制:5000ms内存限制:65536kB
描述
一个数如果从左往右读和从右往左读数字是相同的,则称这个数是回文数,
如121,1221,15651都是回文数。给定位数n,找出所有既是回文数又是素数的n位十进制数。
(注:不考虑超过整型数范围的情况)。
输入
位数n,其中1<=n<=9。
输出
第一行输出满足条件的素数个数。
第二行按照从小到大的顺序输出所有满足条件的素数,两个数之间用一个空格区分。
样例输入
1
样例输出
4
2 3 5 7

分析:参见百度百科

回文素数是一个既是素数又是回文数的整数。回文素数与记数系统的进位制有关。
回文素数是指,对一个整数n(n≥11)从左向右和从右向左读其结果值相同且是素数,即称n为回文素数。
除了11,偶数位的数不存在回文质数。4位,6位,8位……数不存在回文质数。
最初几个回文素数:11,101,131,151,181,191,313,353,373,383,727,757,787,797,919,929……两位回文素数1个,三位回文素数15个,五位回文素数93个,七位回文素数668个,九位回文素数5172个。
 
思路:
对n为偶数的情况,直接特殊处理。
对n为奇数的情况,可以先特殊处理n==1的情况,然后对n==3、5、7、9的情况按如下方法处理:
先想办法够造出一个n位的回文数temp然后判断temp是否是质数。
够造n位的回文数temp的方法:用所有的(n+1)/2位的数分别够造n位的回文数。例如:可以用123够造一个5位的回文数12321.
(注意:123可以够造出12321和32123两个回文数,但是我们只需要使用123够造12321,在接下来的循环过程中会使用321够造32123这个回文数。)
 
具体代码:
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<math.h>
 4 int isPrime(int n);//判断n是否质数
 5 long long huiWen(int n);//例如:n等于123,返回12321这样一个回文数
 6 long myPow(int x);//计算并返回10^x
 7 
 8 int main()
 9 {
10     int n;
11     long begin,end,i;
12     long long a[8000]={0},count;
13     long long temp=0;
14 
15     freopen("11.IN","r",stdin);
16     freopen("11.out","w",stdout);
17 
18     scanf("%d",&n);
19 
20     if(n==2) printf("1\n11\n");
21     else if(n%2==0) printf("0\n");
22     else if(n==1) printf("4\n2 3 5 7\n");
23     else
24     {
25         n=(n+1)/2;
26         begin=myPow(n-1);
27         end=myPow(n);
28         count=0;
29         for(i=begin;i<end;i++)
30         {
31             temp=huiWen(i);
32             if(isPrime(temp)==1) { a[count]=temp; count++; }
33         }
34         printf("%d\n",count);
35         for(i=0;i<count;i++)
36         {
37             printf("%d ",a[i]);
38         }
39     }
40     return 0;
41 }
42 int isPrime(int n)
43 {
44     int x,i;
45     x=sqrt(n);
46     for(i=2;i<=x;i++)
47     {
48         if(n%i==0) return 0;
49     }
50     return 1;
51 }
52 long long huiWen(int n)//例如:n等于123,返回12321这样一个回文数
53 {
54     long long ans=n;
55     n=n/10;
56     while(n>0)
57     {
58         ans=ans*10+n%10;
59         n=n/10;
60     }
61     return ans;
62 }
63 long myPow(int x)//计算并返回10^x
64 {
65     int i;
66     long ans=1;
67     for(i=0;i<x;i++) ans=ans*10;
68     return ans;
69 }

 

题目连接:http://noi.openjudge.cn/ch0113/11/

 

相关文章
|
缓存 JavaScript 前端开发
JavaScript中DOM操作:新手常犯错误与避免策略
【4月更文挑战第1天】本文介绍了JavaScript中DOM操作的基础和新手常犯错误,包括频繁查询DOM、不恰当的遍历、滥用innerHTML、忽视异步与DOM状态以及过度同步更新。建议包括缓存DOM引用、注意文本节点、慎用innerHTML以防止XSS、正确处理异步和批量更新。遵循最佳实践,开发者能提升代码质量和应用性能。
511 2
|
大数据 Java Docker
Datahub稳定版本0.10.4安装指南(独孤风版本)
Datahub稳定版本0.10.4安装指南(独孤风版本)
962 0
|
8月前
|
人工智能 运维 Cloud Native
全面开测 - 零门槛,即刻拥有DeepSeek-R1满血版,百万token免费用
DeepSeek是当前热门的推理模型,尤其擅长数学、代码和自然语言等复杂任务。2024年尾,面对裁员危机,技术进步的学习虽减少,但DeepSeek大模型的兴起成为新的学习焦点。满血版DeepSeek(671B参数)与普通版相比,在性能、推理能力和资源需求上有显著差异。满血版支持实时联网数据更新和多轮深度对话,适用于科研、教育和企业级应用等复杂场景。 阿里云提供的满血版DeepSeek部署方案对普通用户特别友好,涵盖云端调用API及各尺寸模型的部署方式,最快5分钟、最低0元即可实现。
1021 68
|
3月前
|
存储 消息中间件 开发框架
如何开发一套ERP系统(附架构图+流程图+代码参考)
ERP系统是企业资源计划的核心工具,有效解决信息孤岛、数据重复等问题,提升管理效率与运营成本控制能力。本文详解ERP系统的核心模块及订单管理模块的开发流程,涵盖功能设计、技术选型与代码示例,助力企业高效搭建信息系统。
|
12月前
|
机器学习/深度学习 人工智能 搜索推荐
"从万能钥匙到私人定制:揭秘大模型私有化垂直技术如何引领各行各业走向专属智能新时代"
【10月更文挑战第17天】随着AI技术的发展,大型语言模型在各领域的应用日益广泛,但面对特定行业需求时,通用模型常显不足。大模型私有化垂直技术通过在私有环境中部署并结合行业数据,实现模型定制化,提升服务精准度与效率。例如,“健康守护者”利用该技术提供个性化健康管理,“金融智囊团”则提供定制化投资建议。未来,私有化大模型将在更多领域发挥关键作用。
198 2
|
12月前
|
移动开发 JavaScript 前端开发
webpack学习四:使用webpack配置plugin,来使用HtmlWebpackPlugin、uglifyjs-webpack-plugin、webpack-dev-server等插件简化开发
这篇文章主要介绍了如何通过配置Webpack的插件,如HtmlWebpackPlugin、uglifyjs-webpack-plugin和webpack-dev-server,来简化前端开发流程。
498 0
webpack学习四:使用webpack配置plugin,来使用HtmlWebpackPlugin、uglifyjs-webpack-plugin、webpack-dev-server等插件简化开发
|
分布式计算 DataWorks 关系型数据库
MaxCompute产品使用合集之如何设置成自增字段
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
存储 运维 Kubernetes
在k8S中,如何对接外部ceph?
在k8S中,如何对接外部ceph?
|
存储 机器学习/深度学习 人工智能
5个优质免费自然语言处理学习资源 | 语言技术导航
5个优质免费自然语言处理学习资源 | 语言技术导航
|
机器学习/深度学习 人工智能 自然语言处理
混淆矩阵(Confusion Matrix)
随着机器学习和人工智能的迅速发展,分类模型成为了解决各种问题的重要工具。然而,仅仅知道模型预测对了多少样本是不够的。我们需要一种更详细、更系统的方法来理解模型的分类能力,以及它在不同类别上的表现。 混淆矩阵是在机器学习和统计学中用于评估分类模型性能的一种表格。它对模型的分类结果进行了详细的总结,特别是针对二元分类问题,另外混淆矩阵是用于评估分类模型性能的一种表格,特别适用于监督学习中的分类问题。它以矩阵形式展示了模型对样本进行分类的情况,将模型的预测结果与实际标签进行对比。
1274 1