C语言求给定正整数m以内的最大素数,m由键盘输入值。
时间: 2024-12-04 11:22:26 浏览: 16
在C语言中,我们可以编写一个程序来寻找小于等于给定正整数m的最大素数。下面是一个简单的算法实现:
```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 main() {
int m;
printf("请输入一个正整数: ");
scanf("%d", &m);
// 初始化最大素数为m本身,如果m本身就是素数的话
int max_prime = m;
for (int i = m - 1; i >= 2; i--) {
if (is_prime(i)) {
max_prime = i; // 更新最大素数
break; // 一旦找到就停止搜索
}
}
printf("小于等于%d的最大素数是: %d\n", m, max_prime);
return 0;
}
```
这个程序首先定义了一个`is_prime`函数用于判断一个数是否是素数。然后,在`main`函数中,它让用户输入一个正整数m,并从m减一往下遍历,找到第一个大于1且不是合数(除了1以外还有其他因数的数)的数,即为最大素数。
阅读全文