团体程序设计天梯赛-练习集——L1-028 判断素数

前言

一道10分的题目,相对来说比较简单,思考的时候要仔细且活跃,有时候在写代码的时候一些代码的出现很多余,并且会影响最后的结果

L1-028 判断素数

本题的目标很简单,就是判断一个给定的正整数是否素数。

输入格式:

输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2
31次方的需要判断的正整数。

输出格式:

对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No

输入样例:

2
11
111

输出样例:

Yes
No

好了,以上的题目就到这里,这道题给人的第一感觉就是很简单,确实,这道题没什么难度
我做题的过程中,刚看到题就有了思路,先搞一个变量,存储输入的数字数量,然后再搞两个数组,注意了,这里我首先想到的是数组,一个用于存储输入的数字,另一个用于存储这个数字是否是素数,这里是因为我不喜欢再一个for里面写很多东西,所以我下意识的定义了两个数组为了再写一个for输出好使,但是,看哈,我的写法的话,一个for用来输入数字,一个用来判断是否是素数,还有一个输出结果,我靠,这样真的太鸡肋了,但是代码能跑能输出,看一下代码先

代码1

#include <stdio.h>
#include <math.h>
int main()
{int n;scanf("%d",&n);int num[n];int count[n];int i = 0,j = 0;for(i = 0; i < n;i++){scanf("%d",&num[i]);count[i] = 0;if(num[i] == 1)count[i] = 1;for(j = 2;j <= sqrt(num[i]);j++){if(num[i] % j == 0){count[i] = 1;break;}}}for(i = 0; i < n;i++){if(count[i])printf("No\n");else printf("Yes\n");}
}

上面这个代码太鸡肋了,然后看一眼,最后一个for貌似没什么用,放到上一个for里面,得到了下面的代码

代码2

#include <stdio.h>
#include <math.h>
int main()
{int n;scanf("%d",&n);int num[n];int count[n];int i = 0,j = 0;for(i = 0; i < n;i++){scanf("%d",&num[i]);count[i] = 0;if(num[i] == 1)count[i] = 1;for(j = 2;j <= sqrt(num[i]);j++){if(num[i] % j == 0){count[i] = 1;break;}}if(count[i])printf("No\n");else printf("Yes\n");}}

其实这样就差不多了,但是数组在这里看起来不太舒服,其实这里面就不需要用到数组了,每一个数判断一次直接输出了就,不需要用数组存储这个数字变量和素数判断,得到最终版的答案,上代码

代码(终极版

#include <stdio.h>
#include <math.h>
int main()
{int n;scanf("%d",&n);int num;int count;int i = 0,j = 0;for(i = 0; i < n;i++){scanf("%d",&num);count = 0;if(num == 1)count = 1;for(j = 2;j <= sqrt(num);j++){if(num % j == 0){count = 1;break;}}if(count)printf("No\n");else printf("Yes\n");}}

虽然我们现在把题做完了,但是这道题有一个容易忽略的细节,大家看
在这里插入图片描述
这两个标红框的地方,这里有一种情况容易忽略掉,那就是输入的数字是1的情况,如果这个没有写这个情况的话,会得到在这里插入图片描述
这样的一个情况,大家在写的时候一定要注意细节不然4分就白白送人了

以上所有代码均为自己编写,本人水平有限,如果有哪里出错或者有更好的解法可以与我私信或在评论区里进行讨论

上一题:团体程序设计天梯赛-练习集——L1-027 出租

下一题:团体程序设计天梯赛-练习集——L1-029 是不是太胖了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10316.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓(android)订餐菜单【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的&#xff08;如果代码有错漏&#xff0c;可查看源码&#xff09; 1.掌握Activity生命周的每个方法。 2.掌握Activity的创建、配置、启动和关闭。 3.掌握Intent和IntentFilter的使用。 4.掌握Activity之间的跳转方式、任务栈和四种启动模式。 5.掌握在Activity中添加…

阿里云 - RocketMQ入门

前言 云消息队列 RocketMQ 版产品具备异步通信的优势&#xff0c;主要应用于【异步解耦】、【流量削峰填谷】等场景对于同步链路&#xff0c;需要实时返回调用结果的场景&#xff0c;建议使用RPC调用方案阿里云官网地址RocketMQ官网地址 模型概述 生产者生产消息并发送至服务…

MySQL注入中load_file()函数的使用

前言 在Msql注入中&#xff0c;load_file()函数在获得webshell以及提权过程中起着十分重要的作用&#xff0c;常被用来读取各种配置文件 而load_file函数只有在满足两个条件的情况下才可以使用&#xff1a; 文件权限&#xff1a;chmod ax pathtofile 文件大小&#xff1a;必须…

HTML<hgroup>标签

例子&#xff1a; 使用hgroup元素标记标题和段落是相关的&#xff1a; <hgroup> <h2>Norway</h2> <p>The land with the midnight sun.</p> </hgroup> 定义和用法&#xff1a; 标签<hgroup>用于包围标题和一个或多个<p&g…

深度学习的应用

目录 一、机器视觉 1.1 应用场景 1.2 常见的计算机视觉任务 1.2.1 图像分类 1.2.2 目标检测 1.2.3 图像分割 二、自然语言处理 三、推荐系统 3.1 常用的推荐系统算法实现方案 四、图像分类实验补充 4.1 CIFAR-100 数据集实验 实验代码 4.2 CIFAR-10 实验代码 深…

Redis篇 Redis如何清理过期的key以及对应的解决方法

Redis设置Key过期时间 在 Redis 中&#xff0c;可以通过特定的命令为 Key 设置过期时间&#xff0c;使得 Key 在一定时间后自动删除&#xff0c;这对于管理缓存、验证码等临时数据非常有用。 解决方法 1. Redis过期删除策略 1.1 如何实现过期策略 对一个 key 设置了过期时间…

Oracle Primavera P6 最新版 v24.12 更新 2/2

目录 一. 引言 二. P6 EPPM 更新内容 1. 用户管理改进 2. 更轻松地标准化用户设置 3. 摘要栏标签汇总数据字段 4. 将里程碑和剩余最早开始日期拖到甘特图上 5. 轻松访问审计数据 6. 粘贴数据时排除安全代码 7. 改进了状态更新卡片视图中的筛选功能 8. 直接从活动电子…

UE5.3 C++ CDO的初步理解

一.UObject UObject是所有对象的基类&#xff0c;往上还有UObjectBaseUtility。 注释&#xff1a;所有虚幻引擎对象的基类。对象的类型由基于 UClass 类来定义。 这为创建和使用UObject的对象提供了 函数&#xff0c;并且提供了应在子类中重写的虚函数。 /** * The base cla…

进阶数据结构——高精度运算

目录 前言一、高精度运算的定义与背景二、高精度运算的实现方式三、高精度运算的算法实现四、高精度运算的应用场景五、代码模版&#xff08;c&#xff09;六、经典例题1.[高精度加法](https://www.lanqiao.cn/problems/1516/learning/?page1&first_category_id1&name…

使用 cmake

使用前注意 : CMake是一种跨平台的构建系统&#xff0c;它用于管理软件构建过程&#xff0c;尤其适合多语言、多配置的项目。CMake不直接构建软件&#xff0c;而是生成特定构建工具&#xff08;如Makefile或Visual Studio项目&#xff09;所需的配置文件。 如果仅仅使用 qt 编…

(1)Linux高级命令简介

Linux高级命令简介 在安装好linux环境以后第一件事情就是去学习一些linux的基本指令&#xff0c;我在这里用的是CentOS7作演示。 首先在VirtualBox上装好Linux以后&#xff0c;启动我们的linux&#xff0c;输入账号密码以后学习第一个指令 简介 Linux高级命令简介ip addrtou…

【ArcMap零基础训练营】03 常用数据网站的数据下载及处理

03 常见数据网站的数据下载及处理 230108直播录像 常见数据下载及nc文件批处理 数据源网站汇总 名称网址备注RESDChttps://www.resdc.cn/中科院地理科学与资源研究所&#xff0c;非会员用户每日5次下载&#xff0c;大部分有用的资源均收费。TPDChttps://data.tpdc.ac.cn/国家青…

MySQL数据库(二)

一 DDL (一 数据库操作 1 查询-数据库&#xff08;所有/当前&#xff09; 1 所有数据库&#xff1a; show databases; 2 查询当前数据库&#xff1a; select database(); 2 创建-数据库 可以定义数据库的编码方式 create database if not exists ax1; create database ax2…

步入响应式编程篇(三)之spring webFlux与R2DBC

spring webFlux与R2DBC 前言Spring webFlux与spring mvc的对比spring mvcspring webFluxSSE的demo R2DBC 前言 前面介绍响应式编程主要用到基于Stream API的Reactor API的方式&#xff0c;但如今业务操作需结合springboot&#xff0c;所以spring webFlux使用的更多&#xff0c…

19.Word:小马-校园科技文化节❗【36】

目录 题目​ NO1.2.3 NO4.5.6 NO7.8.9 NO10.11.12索引 题目 NO1.2.3 布局→纸张大小→页边距&#xff1a;上下左右插入→封面&#xff1a;镶边→将文档开头的“黑客技术”文本移入到封面的“标题”控件中&#xff0c;删除其他控件 NO4.5.6 标题→原文原文→标题 正文→手…

redis数据安全与性能保障

数据安全与性能保障 1、持久化1.1 快照持久化1.2 AOF持久化1.3 重写/压缩AOF文件 2、复制2.1 Redis复制的启动过程2.2 主从链 3、处理系统故障3.1 验证快照文件和AOF文件 4、事务4.1 java中的redis事务使用 如有侵权&#xff0c;请联系&#xff5e; 如有错误&#xff0c;也欢迎…

【AI非常道】二零二五年一月(二),AI非常道

经常在社区看到一些非常有启发或者有收获的话语&#xff0c;但是&#xff0c;往往看过就成为过眼云烟&#xff0c;有时再想去找又找不到。索性&#xff0c;今年开始&#xff0c;看到好的言语&#xff0c;就记录下来&#xff0c;一月一发布&#xff0c;亦供大家参考。 有关AI非…

从巫师求雨说起

树上停着一只猫头鹰&#xff1a; 你相信吗&#xff1f;这不是一般的鸟&#xff0c;猫头鹰其实是一个人&#xff0c;它是一个巫师变的。 你不相信&#xff1f;那我问你&#xff0c;为什么猫头鹰和乌鸦一样&#xff0c;那叫声&#xff0c;常常让人瘆得慌&#xff1f;(owl&#x…

【C++】类和对象

面向对象编程 学习过C语言的小伙伴知道&#xff1a;C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 面向过程编程也叫结构化编程。虽然结构化编程的理念提高了程序的清晰度&#xff0c;可靠性&#xff0c…

21.3-启动流程、编码风格(了解) 第21章-FreeRTOS项目实战--基础知识之新建任务、启动流程、编码风格、系统配置 文件组成和编码风格(了解)

21.3-启动流程、编码风格(了解) 启动流程 第一种启动流程(我们就使用这个): 在main函数中将硬件初始化、RTOS系统初始化&#xff0c;同时创建所有任务&#xff0c;再启动RTOS调度器。 第二种启动流程&#xff1a; 在main函数中将硬件初始化、RTOS系统初始化&#xff0c;只…