郑州企业网站优化多少钱,赣州网上文明实践系统,口碑好的做网站公司哪家好,WordPress搜索功能增强前言
一道10分的题目#xff0c;相对来说比较简单#xff0c;思考的时候要仔细且活跃#xff0c;有时候在写代码的时候一些代码的出现很多余#xff0c;并且会影响最后的结果
L1-028 判断素数
本题的目标很简单#xff0c;就是判断一个给定的正整数是否素数。
输入格式…前言
一道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 是不是太胖了