从键盘输入小于等于100的整数 n ,编写函数统计把小于等于 n 的素数个数,并把这些素数存放在数组 a 中 素数个数作为该函数的返回值。并在主函数中调用该函数,并输出素数个数以及这些素数:参照下列提供的程序框架补充其函数体程序,如需要其他功能函数,请自行定义和调用。 # include < stdio . h > # define MAX 100 int fun ( int n , int a [ MAX ])[功能函数体; 飞 int main0( 主函数体; 样例输入: 输出:4
时间: 2024-03-16 14:45:28 浏览: 57
以下是实现该功能的函数体:
```c
int is_prime(int x) { // 判断一个数是否为素数
if (x <= 1) {
return 0;
}
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) {
return 0;
}
}
return 1;
}
int fun(int n, int a[]) {
int count = 0;
for (int i = 2; i <= n; i++) {
if (is_prime(i)) {
a[count++] = i;
}
}
return count;
}
```
通过主函数调用该函数并输出素数个数以及这些素数,代码如下:
```c
#include <stdio.h>
#define MAX 100
int is_prime(int x);
int fun(int n, int a[]);
int main() {
int n, a[MAX];
printf("请输入一个小于等于100的整数n:");
scanf("%d", &n);
int count = fun(n, a);
printf("小于等于%d的素数个数为:%d\n", n, count);
printf("这些素数为:");
for (int i = 0; i < count; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
int is_prime(int x) {
if (x <= 1) {
return 0;
}
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) {
return 0;
}
}
return 1;
}
int fun(int n, int a[]) {
int count = 0;
for (int i = 2; i <= n; i++) {
if (is_prime(i)) {
a[count++] = i;
}
}
return count;
}
```
输入样例:
```
请输入一个小于等于100的整数n:30
```
输出样例:
```
小于等于30的素数个数为:10
这些素数为:2 3 5 7 11 13 17 19 23 29
```
阅读全文