利用c语言,编程实现打印出2-n之间的所有素数,要求判断素数过程用自定义函数实现
时间: 2024-02-13 22:59:51 浏览: 99
好的,我来为您提供代码实现:
```c
#include <stdio.h>
// 判断素数的函数
int isPrime(int n)
{
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
// 打印2-n之间的素数
void printPrime(int n)
{
printf("2 ");
for (int i = 3; i <= n; i += 2) {
if (isPrime(i)) {
printf("%d ", i);
}
}
}
int main()
{
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("2-%d之间的素数有:\n", n);
printPrime(n);
printf("\n");
return 0;
}
```
程序中,我们定义了两个函数,一个是 `isPrime` 函数,用于判断一个数是否为素数;另一个是 `printPrime` 函数,用于打印出2-n之间的所有素数。在 `main` 函数中,我们先读取用户输入的正整数n,然后调用 `printPrime` 函数来打印出2-n之间的素数。
需要注意的是,在 `isPrime` 函数中,我们只需要从2到sqrt(n)来判断n是否为素数即可,因为如果n不是素数,那么它一定可以分解成两个数的乘积,其中一个数一定小于等于sqrt(n),另一个数一定大于等于sqrt(n)。
阅读全文