下面是一个简单的C语言程序示例,用于完成您的需求。
#include <stdio.h>
#include <stdbool.h>
// 函数声明:判断i是否为素数
bool isPrime(int i);
int main() {
int a, b;
printf("请输入两个正整数a和b(b>a>2): ");
scanf("%d %d", &a, &b);
// 确保输入符合要求
if (b <= a || a <= 2) {
printf("输入不满足条件b>a>2,请重新运行程序。\n");
return 1;
}
// 打开文件准备写入
FILE *file = fopen("prime.txt", "w");
if (file == NULL) {
perror("无法打开文件");
return 1;
}
// 遍历a到b之间的所有整数,判断并写入素数
for (int i = a; i <= b; i++) {
if (isPrime(i)) {
fprintf(file, "%d\n", i); // 将素数写入文件
}
}
// 关闭文件
fclose(file);
printf("操作完成,素数已写入prime.txt。\n");
return 0;
}
// 判断i是否为素数的函数实现
bool isPrime(int i) {
if (i <= 1) return false;
if (i <= 3) return true;
if (i % 2 == 0 || i % 3 == 0) return false;
for (int j = 5; j * j <= i; j += 6) {
if (i % j == 0 || i % (j + 2) == 0) return false;
}
return true;
}