C语言典型例题——判断一个数是否为质数(素数)
这里这只介绍一种方法
1.首先什么是质数(素数)
2.错误示范
3.正确示范
- 首先什么是质数(素数)
我开始认为素数和质数是两个东西,其是他两个是一个东西。
除了1和它本身之外,不能被其他数所整除即为质数(素数)
例如11,除了1和它本身11没有其他数可以将它整除,所以11是个质数(素数)
2.错误示范
开始我并没有直接从网上搜索相关教程视频,而是凭借前两天看过的一节网课中类似的一个题开始了编写,于是就出现了一堆的错误,如下:
#include <stdio.h>
int main(void)
{
int i = 0;
printf("请输入一个小于100的数\n");
scanf("%d\n",&i);
while (i<=100)
{
if (i % 2 == 1)
printf("是质数");
else
printf("不是质数");
}
return 0;
}
于是我又去企鹅群里问大佬,说我这个为什么运行不了啊,大佬说我的语法和逻辑都有错误,让我自行百度,然后理清思路,然后便有了下面的操作。
我开始在哔哩哔哩上疯狂搜索,因为开始我认为质数和素数不是一个东西,所以跟很多视频文章擦肩而过,直到我认识到素数和质数是一个东西后,才正式的开始。
3.正确示范
我发现了解到while,for循环语句的我,看很多老哥写的代码根本就看不懂,我就一直找简单的,这里推荐b站up主小小杰吖i的这个视频(这里是链接),这里用到了for循环,
//检验一个数是否为质数(素数)
#include <stdio.h>
int main(void)
{
int num;
printf("请输入一个大于1的整数:");
scanf("%d", &num);
//for循环
for (int i = 2; i <= num - 1; i++)
{
//判断num是否能被i整除 若能整除即不为质数
if (num%i == 0)
{
printf("%d不是质数\n", num);
//return终止函数
return;
}
}
printf("%d是质数\n", num);
return 0;
}
用到的知识,(1)for循环语句
for(exp1;exp2;exp3)
exp1为初始化部分,用于初始化循环变量。
exp2为条件判断部分,判断条件是否终止。
exp3为循环调整。
把while循环中的三个部分放到了一起。
(2)%求模(求余数)运算。
(3)return目前不是很了解,在这个代码中起终止函数的作用。