欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > 团体程序设计天梯赛-练习集——L1-028 判断素数

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

2025/2/6 16:50:48 来源:https://blog.csdn.net/shidisy/article/details/145407912  浏览:    关键词:团体程序设计天梯赛-练习集——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 是不是太胖了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com