求1~n的素数的个数。(要求主函数中调用子函数,并用由键盘中输入n值)
时间: 2024-09-07 16:01:31 浏览: 50
要计算从1到n之间的素数个数,我们可以创建一个子函数来判断一个数是否为素数,然后在主函数中通过循环调用这个子函数来累加素数的数量。素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。
下面是一个使用C语言实现的示例代码:
```c
#include <stdio.h>
#include <stdbool.h>
// 子函数:判断num是否为素数
bool isPrime(int num) {
if (num <= 1) return false; // 小于等于1的数不是素数
if (num == 2) return true; // 2是素数
if (num % 2 == 0) return false; // 排除偶数
for (int i = 3; i * i <= num; i += 2) { // 只需要检查到sqrt(num)
if (num % i == 0) {
return false; // 如果能被除了1和它本身以外的数整除,则不是素数
}
}
return true;
}
// 主函数
int main() {
int n;
printf("请输入n的值:");
scanf("%d", &n); // 从键盘读取n的值
int count = 0; // 用于累计素数的个数
for (int i = 2; i <= n; i++) { // 从2开始到n遍历每个数
if (isPrime(i)) {
count++; // 如果是素数,则计数器加1
}
}
printf("1到%d之间的素数个数为:%d\n", n, count);
return 0;
}
```
阅读全文