热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

100c之33:回文素数

TableofContents1问题2分析3解决方案4输出结果5题后语问题

Table of Contents

  • 1 问题
  • 2 分析
  • 3 解决方案
  • 4 输出结果
  • 5 题后语

问题

回文素数:求不超过1000的回文素数。所谓回文素数是指,对一个整数n从左向右和从右向左读都是一样的素数。

分析

穷举。

解决方案

 1:  /**
 2:   * @file   033cprime.c
 3:   * @author Chaolong Zhang @163.com>
 4:   * @date   Wed Jun  5 18:37:44 2013
 5:   * 
 6:   * @brief  回文素数:求不超过1000的回文素数。所谓回文素数是指,对一个整数n从左向右和从右向左读都是一样的素数。
 7:   * 
 8:   * 
 9:   */
10:  #include 
11:  int is_prime( int );
12:  
13:  int main(int argc, char *argv[])
14:  {
15:      int i,j,t,k,s;
16:      printf ("Following are palindrome primes not greater than 1000\n");
17:      for (i=0; i<=9 ; i++)
18:      {
19:          for (j=0; j <= 9; j++)
20:          {
21:              for (k=0; k <= 9; k++)
22:              {
23:                  s=i*100 + j*10 + k;
24:                  t=k*100 + j*10 + i;
25:                  if( 0==i && 0 == j ) t/=100;
26:                  else if( 0 == i ) t/=10;
27:                  if ((  s > 10 ) && ( s == t ) && is_prime( s ) )
28:                      printf ("%d\t\n",s);
29:              }
30:  
31:          }
32:  
33:      }
34:      return 0;
35:  }
36:  
37:  
38:  int is_prime ( int n )
39:  {
40:      int i;
41:      int flag=1;
42:      if (n==2 || n==3)
43:          return flag;
44:      for ( i = 2; i <= ( n/2 + 1 ); ++i) 
45:          if (n%i == 0 ) {
46:              flag=0;return flag;
47:          }
48:  }

输出结果

Following are palindrome primes not greater than 1000
11      
101     
131     
151     
181     
191     
313     
353     
373     
383     
727     
757     
787     
797     
919     
929

题后语

在使用 i j k 三个变量构造 三位数时发现for循环的哑元变量加一过程很诡异:如果是(i++),则在本次for循环结束后再进行加一,如果是(++i)则判断完条件后就把i加一。gcc编译的代码就是这么做的。


推荐阅读
  • GDB 使用心得与技巧总结
    在使用 GDB 进行调试时,可以采用以下技巧提升效率:1. 通过设置 `set print pretty on` 来美化打印输出,使数据结构更加易读;2. 掌握常见数据结构的打印方法,如链表、树等;3. 利用 `info locals` 命令查看当前作用域内的所有局部变量;4. 在需要进行类型强制转换时,正确使用语法,例如 `p (Test::A *) pObj`。这些技巧能够显著提高调试的便捷性和准确性。 ... [详细]
  • BZOJ4240 Gym 102082G:贪心算法与树状数组的综合应用
    BZOJ4240 Gym 102082G 题目 "有趣的家庭菜园" 结合了贪心算法和树状数组的应用,旨在解决在有限时间和内存限制下高效处理复杂数据结构的问题。通过巧妙地运用贪心策略和树状数组,该题目能够在 10 秒的时间限制和 256MB 的内存限制内,有效处理大量输入数据,实现高性能的解决方案。提交次数为 756 次,成功解决次数为 349 次,体现了该题目的挑战性和实际应用价值。 ... [详细]
  • 本文详细探讨了OpenCV中人脸检测算法的实现原理与代码结构。通过分析核心函数和关键步骤,揭示了OpenCV如何高效地进行人脸检测。文章不仅提供了代码示例,还深入解释了算法背后的数学模型和优化技巧,为开发者提供了全面的理解和实用的参考。 ... [详细]
  • 本次发布的Qt音乐播放器2.0版本在用户界面方面进行了细致优化,提升了整体的视觉效果和用户体验。尽管核心功能与1.0版本保持一致,但界面的改进使得操作更加直观便捷,为用户带来了更为流畅的使用体验。此外,我们还对部分细节进行了微调,以确保软件的稳定性和性能得到进一步提升。 ... [详细]
  • 深入解析 ELF 文件格式与静态链接技术
    本文详细探讨了ELF文件格式及其在静态链接过程中的应用。在C/C++代码转化为可执行文件的过程中,需经过预处理、编译、汇编和链接等关键步骤。最终生成的可执行文件不仅包含系统可识别的机器码,还遵循了严格的文件结构规范,以确保其在操作系统中的正确加载和执行。 ... [详细]
  • [TyvjP1050] 动态规划求解最长公共子序列问题
    在解决最长公共子序列问题时,动态规划是一种高效的方法。具体而言,我们使用二维数组 `dp[i][j]` 来表示第一个字符串匹配到第 `i` 位,第二个字符串匹配到第 `j` 位时的最长公共子序列长度。状态转移方程为:当两个字符相等时,`dp[i][j] = dp[i-1][j-1] + 1`;否则,`dp[i][j] = max(dp[i-1][j], dp[i][j-1])`。通过这种方法,我们可以有效地计算出两个字符串的最长公共子序列。 ... [详细]
  • 在进行网络编程时,准确获取本地主机的IP地址是一项基本但重要的任务。Winsock作为20世纪90年代初由Microsoft与多家公司共同制定的Windows平台网络编程接口,为开发者提供了一套高效且易用的工具。通过Winsock,开发者可以轻松实现网络通信功能,并准确获取本地主机的IP地址,从而确保应用程序在网络环境中的稳定运行。此外,了解Winsock的工作原理及其API函数的使用方法,有助于提高开发效率和代码质量。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • Java Web开发中的JSP:三大指令、九大隐式对象与动作标签详解
    在Java Web开发中,JSP(Java Server Pages)是一种重要的技术,用于构建动态网页。本文详细介绍了JSP的三大指令、九大隐式对象以及动作标签。三大指令包括页面指令、包含指令和标签库指令,它们分别用于设置页面属性、引入其他文件和定义自定义标签。九大隐式对象则涵盖了请求、响应、会话、应用上下文等关键组件,为开发者提供了便捷的操作接口。动作标签则通过预定义的动作来简化页面逻辑,提高开发效率。这些内容对于理解和掌握JSP技术具有重要意义。 ... [详细]
  • 本文基于Proteus平台,对步进电机的仿真与控制技术进行了深入研究。通过修改代码,实现了步进电机精确转动1圈的控制。实验结果验证了该方法的有效性和可靠性,为步进电机在精密控制领域的应用提供了有力支持。 ... [详细]
  • BZOJ 1835: 基站位置选择问题(动态规划与线段树优化) ... [详细]
  • 在多堆石子游戏中,通过分析Nim博弈策略,探讨了如何在限定时间和内存条件下实现最优解。本文详细研究了石子游戏中的数学原理和算法优化方法,旨在为参与者提供有效的策略指导。具体而言,文章讨论了不同堆数下的Nim值计算及其应用,帮助玩家在复杂的博弈环境中取得优势。 ... [详细]
  • 【并发编程】全面解析 Java 内存模型,一篇文章带你彻底掌握
    本文深入解析了 Java 内存模型(JMM),从基础概念到高级特性进行全面讲解,帮助读者彻底掌握 JMM 的核心原理和应用技巧。通过详细分析内存可见性、原子性和有序性等问题,结合实际代码示例,使开发者能够更好地理解和优化多线程并发程序。 ... [详细]
  • 在处理UVA11987问题时,关键在于实现并查集结构以支持删除操作。特别地,当需要删除某个节点时,如果该节点不是根节点,则处理相对简单;然而,若删除的是根节点,则需要进行额外的处理来维护集合的连通性。本文将详细介绍如何通过优化并查集算法,确保在删除根节点时仍能高效地维护数据结构的完整性和查询效率。 ... [详细]
  • 计算 n 叉树中各节点子树的叶节点数量分析 ... [详细]
author-avatar
罗kowalske
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有