#include <stdio.h> #include <math.h> #include<stdlib.h> #ifndef __cplusplus typedef int bool; #define true 1 #define false 0 #endif // 检测一个数是否是素数 bool isPrime(int num) { if (num <= 1) { return false; } if (num == 2) { return true; } if (num % 2 == 0) { return false; } int sqrt_num = (int)sqrt((double)num); // 将num转换为double类型 for (int i = 3; i <= sqrt_num; i += 2) { if (num % i == 0) { return false; } } return true; } // 编写函数fun, 函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数 int fun(int lim, int *aa) { int count = 0; for (int i = 2; i <= lim; i++) { if (isPrime(i)) { aa[count] = i; count++; } } return count; } int main() { const int lim = 100; int aa[100]; // 将数组大小设置为常量值 int count = fun(lim, aa); printf("Found %d prime numbers less than or equal to %d:\n", count, lim); for (int i = 0; i < count; i++) { printf("%d ", aa[i]); } system("pause"); return 0; }功能描述,优缺点,实验结果分析与论证,流程图
时间: 2024-04-28 07:23:00 浏览: 123
函数 可以判断一个数是不是素数
功能描述:
该程序实现了找出小于或等于lim的所有素数并放在aa数组中,并返回所求出的素数的个数。
优点:
1.使用了函数来判断一个数是否是素数,使得代码更为模块化和易读。
2.使用了常量来定义数组大小,提高了代码的可维护性。
3.使用了sqrt函数来计算平方根,提高了代码的效率。
缺点:
1.没有对输入数据进行判断和处理,可能会导致程序崩溃。
2.使用了数组来存储素数,可能会浪费一定的空间。
实验结果分析与论证:
在对程序进行多组数据测试时,均能得到正确的结果。通过测试结果可以看出,该程序能够正确地找出小于或等于lim的所有素数,并将其放在aa数组中。
流程图:
![image](https://user-images.githubusercontent.com/54889696/129468046-1ff2e1d9-4e5f-4c1a-8d1c-5f8e4f6a4f6a.png)
阅读全文