输入一个数,求这个数的最大质数,C语言
时间: 2024-09-19 13:16:54 浏览: 31
在C语言中,找到一个给定数n的最大质数通常涉及到一些算法技巧,比如试除法。下面是一个简单的递归函数来寻找最大质数,假设输入是正整数:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
int find_largest_prime(int n) {
int largest_prime = 0;
for (int i = n; i >= 2; i--) {
if (is_prime(i)) {
largest_prime = i;
break;
}
}
return largest_prime;
}
int main() {
int number;
printf("请输入一个正整数: ");
scanf("%d", &number);
if (number > 0) {
int max_prime = find_largest_prime(number);
printf("给定数字 %d 的最大质数是: %d\n", number, max_prime);
} else {
printf("无效输入,需要一个正整数。\n");
}
return 0;
}
```
在这个程序中,`is_prime` 函数用于检查一个数是否为质数,`find_largest_prime` 函数从n开始向下遍历,找出第一个质数作为结果。