素数c语言程序怎么写新手一看就会附完整代码与运行效果

admin 综合编程开发技术 3


刚学 C 语言的新手,是不是一听到 “素数程序” 就有点犯怵?觉得这东西听起来好复杂,自己肯定写不出来?其实真不是这样,素数程序看着难,只要掌握了方法,新手也能轻松搞定。今天兔子哥就一步步教你怎么写素数的 C 语言程序,保证你看完就会,还附带完整代码和运行效果,一起往下看吧!


先搞明白:啥是素数?


在写程序之前,咱们得先知道素数到底是啥。素数就是那些大于 1 的整数,除了 1 和它自己之外,再也没有别的数能整除它。比如说 2,只能被 1 和 2 整除,它就是素数;再比如 3、5、7 这些都是素数。那 4 呢?4 能被 2 整除,所以它不是素数。
可能有新手会问,那 1 算不算素数啊?记住了,1 不是素数,也不是合数,这个得记牢,不然写程序的时候容易出错。


素数程序的思路:怎么让电脑判断素数?


想让电脑判断一个数是不是素数,思路其实很简单。就拿一个数 n 来说,咱们让它从 2 开始,一直到 n-1,一个个去试除。如果中间有哪个数能把 n 整除,那 n 就不是素数;要是从头试到尾,没有数能整除 n,那 n 就是素数。
比如判断 7 是不是素数,就用 7 除以 2、3、4、5、6,结果都除不尽,所以 7 是素数。那判断 8 的话,8 除以 2 能除尽,所以 8 不是素数。
这个思路很直接,虽然不是最省时间的,但对新手来说,先把这种基础方法学会,再去学更复杂的优化方法会更容易。


完整代码:判断单个素数的程序


下面就是判断单个素数的完整代码,新手可以照着敲一遍:
#include
int main ()
{
int n, i, is_prime = 1; //is_prime 用来标记是不是素数,1 表示是,0 表示不是

printf ("请输入一个整数:");
scanf ("% d", &n);
if (n <= 1) // 小于等于 1 的数不是素数
{
is_prime = 0;
}
else
{
for (i = 2; i < n; i++) // 从 2 循环到 n-1
{
if (n % i == 0) // 如果 n 能被 i 整除
{
is_prime = 0;
break; // 一旦找到能整除的数,就跳出循环
}
}
}
if (is_prime == 1)
{
printf ("% d 是素数 \n", n);
}
else
{
printf ("% d 不是素数 \n", n);
}
return 0;
}
代码解释:
  • 咱们定义了三个变量,n 是要判断的数,i 是循环用的计数器,is_prime 是个标记,刚开始设为 1,默认这个数是素数。
  • 先让用户输入一个整数 n。
  • 如果 n 小于等于 1,直接标记为不是素数。
  • 要是 n 大于 1,就用 for 循环让 i 从 2 跑到 n-1,每次都用 n 除以 i,看余数是不是 0。要是余数是 0,说明 n 能被 i 整除,就把 is_prime 改成 0,再用 break 跳出循环,不用再往下算了。
  • 最后根据 is_prime 的值,打印出这个数是不是素数。



运行效果:看看程序会输出啥


当你把代码敲好,编译运行后,会看到这样的效果:
  1. 屏幕上会显示 “请输入一个整数:”,这时候你输入 7,按回车。
  2. 程序会接着显示 “7 是素数”。

要是你输入 8,按回车,程序就会显示 “8 不是素数”。
是不是很简单?你可以多试几个数,比如 2、3、9、11 这些,看看程序判断得对不对。


常见错误:新手容易踩的坑


错误情况原因解决办法
把 1 判断成素数没考虑 n<=1 的情况加上 if (n <= 1) 的判断
循环条件写成 i <= n这样 n 肯定能被自己整除,导致所有数都被判断成不是素数循环条件改成 i < n 或者 i <= n-1
忘记用 break 跳出循环会导致循环一直执行到结束,虽然结果对,但浪费时间在找到能整除的数后,用 break 跳出

兔子哥刚开始学的时候,就犯过循环条件写错的错,结果不管输入啥数,都显示不是素数,后来查了半天才发现是 i 的范围弄错了。所以新手写代码的时候,一定要仔细检查这些小细节。


进阶一点:输出一定范围内的素数


有些朋友可能想让程序输出 1 到 100 之间的所有素数,该怎么办呢?其实也不难,就在刚才的基础上,再加一个循环就行。
代码大概是这样的(新手可以试着自己写,不会的话可以搜一下相关代码):在外面加一个循环,让 n 从 2 跑到 100,然后把每个 n 都用上面的方法判断一遍,是素数就打印出来。


兔子哥觉得,写素数程序最重要的是理解判断素数的思路,代码只是把这个思路用电脑能懂的方式写出来而已。新手刚开始不用追求写得多简洁、多高效,先把基础的逻辑搞明白,能写出正确运行的程序就很棒了。
多敲几遍代码,多改改里面的数字试试,比如把循环范围改一改,看看结果有啥变化,这样能更快掌握。其实编程就是这样,看着难,动手做起来就会发现,没想象中那么可怕。希望这篇教程能帮到你,赶紧去试试吧!

标签: 是不是 一步步

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~