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

团体程序设计天梯赛-练习集——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.lryc.cn/news/529766.html

相关文章:

  • 从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(基础图形库实现)
  • 创新创业计划书|建筑垃圾资源化回收
  • 反射、枚举以及lambda表达式
  • ROS应用之IMU碰撞检测与接触事件识别
  • docker安装MySQL8:docker离线安装MySQL、docker在线安装MySQL、MySQL镜像下载、MySQL配置、MySQL命令
  • android安卓用Rime
  • 每日一博 - 三高系统架构设计:高性能、高并发、高可用性解析
  • C++ 中的引用(Reference)
  • 负荷预测算法模型
  • 【C语言】内存管理
  • deepseek大模型本机部署
  • 动态规划DP 最长上升子序列模型 拦截导弹(题目分析+C++完整代码)
  • 缩位求和——蓝桥杯
  • Baklib赋能企业实现高效数字化内容管理提升竞争力
  • 【视频+图文讲解】HTML基础2-html骨架与基本语法
  • 消息队列篇--原理篇--常见消息队列总结(RabbitMQ,Kafka,ActiveMQ,RocketMQ,Pulsar)
  • 【力扣每日一题】存在重复元素 II 解题思路
  • React第二十八章(css modules)
  • 本地运行大模型效果及配置展示
  • 愿景:做机器视觉行业的颠覆者
  • arm-linux-gnueabihf安装
  • 力扣动态规划-16【算法学习day.110】
  • Java基础知识总结(三十四)--java.util.Date
  • 零售EDI:Costco EDI 项目须知
  • 最近最少使用算法(LRU最近最少使用)缓存替换算法
  • sublime_text的快捷键
  • 使用Pygame制作“贪吃蛇”游戏
  • 本地部署DeepSeek开源多模态大模型Janus-Pro-7B实操
  • Java开发vscode环境搭建
  • 深入解析:一个简单的浮动布局 HTML 示例