当前位置: 首页 > news >正文

C/C++最大质数 2021年9月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录

C/C++比n小的最大质数

一、题目要求

1、编程实现

2、输入输出

二、算法分析

三、程序编写

四、程序说明

五、运行结果

六、考点分析


C/C++比n小的最大质数

2021年9月 C/C++编程等级考试一级编程题

一、题目要求

1、编程实现

对于给定的n,求比n小的质数中最大的一个

质数是指大于1的自然数,除了1和它自身外,不能被其他自然数整除的数。

2、输入输出

输入描述:只有一行,一个整数n(2<n<1000)

输出描述:只有一行,一个整数,即题目要求的解。

输入样例:

100

输出样例:

97

二、算法分析

  1. 题目是要求质数,也就是素数
  2. 这种题目方法有很多种,本题是要求最大质数,所以可以将遍历的时候从大到小,找到的第一个质数就是最大质数
  3. 如何找质数,质数的定义是除了1和本身之外没有其它约数,所以可以将这个数循环对2到这个数的一半进行取余运算,如果都没有余数等于0的情况说明这个数没有能够被其它数整除,也就是说这个数就是质数;当然小朋友们要是学的知识多一点可以采用开平方的方式进行遍历上线的获取

三、程序编写

#include<iostream> 
using namespace std;
int main()
{int n;cin>>n;for(int i=n;i>2;i--){int flag=1;for(int j=2;j<=i/2 + 1;j++){if(i%j==0){flag = 0;break;}		}if(flag == 1){cout<<i<<endl;break;}}return 0;
}

四、程序说明

  1. 首先需要导入输入输出流头文件
  2. 接着再次导入输入输出流格式控制头文件
  3. 然后是引入std命名空间中的所有成员到当前的程序中,这样在当前的程序中就可以直接使用 std 命名空间中的所有成员,而不需要使用的时候在成员前面加上(std::)前缀
  4. 接着声明程序的入口,也就是主函数(主函数在一个程序中只允许出现一次)
  5. 根据题目要求声明一个整形变量n
  6. 然后利用输入流对象cin,从键盘读取这个变量的值
  7. 然后利用for循环从n开始倒序进行每个数的遍历
  8. 接着声明一个临时标记变量,1表示不能整除,0表示可以整除
  9. 接着再次利用for循环语句对除数进行从2开始遍历直到当前这个数的一半+1,结合if条件判断语句,如果取余运算等于零,将标记改为0,并退出循环执行下一个数
  10. 最后如果存在标记为1的时候,那就说明这个数就是质数,又因为是从大到小遍历,所以这个数就是最大的质数,利用输出流对象cout,输出这个数即可
  11. 最后返回0,程序结束

本文作者:小兔子编程 作者首页:https://blog.csdn.net/frank2102

五、运行结果

10097

六、考点分析

难度级别:容易,这题相对而言还是比较简单的,具体主要考查如下:

  1. 充分掌握变量的定义和使用
  2. 学会输入流对象cin的使用,从键盘读入相应的数据
  3. 学会for循环的使用,在确定循环次数的时候推荐使用学会
  4. 学会if条件判断语句的使用,满足一定条件才能执行后面的语句
  5. 学会if...else...双分支语句的使用,条件满足执行一种处理,不满足执行另一种处理
  6. 掌握输出流对象cout的使用,与流插入运算符 << 结合使用将对象输出到终端显示
  7. 学会分析题目,算法分析,将复杂问题模块化,简单化,从中找到相应的解题思路
  8. 知晓质数的定义,学会如何判断一个数是质数的方法
  9. 充分掌握变量定义和使用、分支语句、循环语句和简单算法知识的使用及输入输出的用法

PS:方式方法有多种,小朋友们只要能够达到题目要求即可!

相关文章:

  • Redis渐进式rehash小疑问
  • openssl+ DES开发实例(Linux)
  • Linux 系统编程,Binder 学习,文件访问相关的接口
  • 【BIM入门实战】Revit图元的选择方式,总有一款适合你
  • JAXB实现XML和Bean相互转换
  • MyBatis的插件能在哪些地方进行拦截?
  • flutter开发web应用支持浏览器跨域设置
  • RobustVideoMatting 预测图片
  • centos 6.10 安装 svn1.14.2
  • 自己动手实现一个深度学习算法——六、与学习相关的技巧
  • 【matlab】KMeans KMeans++实现手写数字聚类
  • 集成Line、Facebook、Twitter、Google、微信、QQ、微博、支付宝的三方登录sdk
  • 开启创造力之门:掌握Vue中Slot插槽的使用技巧与灵感
  • Intellij IDEA 内存设置的问题 及解决
  • Python高级语法----Python C扩展与性能优化
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • django开发-定时任务的使用
  • Python学习之路13-记分
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 类orAPI - 收藏集 - 掘金
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 数据可视化之 Sankey 桑基图的实现
  • 微信公众号开发小记——5.python微信红包
  • 写给高年级小学生看的《Bash 指南》
  • 一份游戏开发学习路线
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 智能网联汽车信息安全
  • 主流的CSS水平和垂直居中技术大全
  • scrapy中间件源码分析及常用中间件大全
  • 如何用纯 CSS 创作一个货车 loader
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • (04)odoo视图操作
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (ros//EnvironmentVariables)ros环境变量
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (三)模仿学习-Action数据的模仿
  • (三十五)大数据实战——Superset可视化平台搭建
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • **python多态
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .net的socket示例
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .net和jar包windows服务部署
  • .Net接口调试与案例
  • /etc/sudoers (root权限管理)
  • /var/lib/dpkg/lock 锁定问题
  • :“Failed to access IIS metabase”解决方法
  • @Transactional 详解
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • []FET-430SIM508 研究日志 11.3.31
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会