作为一个C语言新手,分享自己做的的一道经典编程题
1.素数的定义
首先必须要了解什么是素数,素数:大于 1 的自然数,且只能被 1 和它本身整除。且0和1不是素数
2.设计思路
首先肯定要定义一个被除数变量i,并且用循环对他进行累加。
再定义一个除数变量j,j<i,对j进行累加,范围是2到i的前一位,为什么是前一位,因为素数只能被1和本身整除,把这两个数排除在外,我们可以做一个标记量flag=1,用if结构执行当i能被j整除时,把flag置为0,再用if语句判断flag是否变成0,为0就输出为素数,并且再定义一个计数量count进行累加。当然j的范围可以在小一点,提高运行效率,引入数学函数sqrt。但这里主要讨论思路。
代码如下:
#include<stdio.h>
int main()
{
int n ;//定义被除数
int i, flag;//定义除数和标记量
int count = 0;//定义统计素数的个数
printf("1-100素数有:");
n = 2;//1不是素数所以从2开始
while (n < 100)
{
i = 2;
flag = 1; //标记为1
while(i<n)//不包括被除数本身
{
if (n % i == 0)
{
flag = 0; //如果有除了1和本身之外的除数标记改变
}
i++;
}
if (flag == 1)
{
printf("%d ", n);//输出素数
count++;//计数累加
}
n++;
}printf("\n");
printf("素数的个数是%d", count);
return 0;
}
在VS2022上的运行结果如下:


被折叠的 条评论
为什么被折叠?



