C语言输入一个正整数n,求[1-n]之间(包括1和n)的所有素数,并把素数输出到out.txt文件中,素数之间用半角空格分隔,每行5个输出。 1)out.txt就在考试目录下,不需要加路径; 示例如下: 输入:50 [out.txt]文件内容为: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
时间: 2024-02-09 14:08:27 浏览: 64
求n以内最大的k个素数以及它们的和(C)
好的,下面是C语言的代码实现:
```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 n, count = 0;
FILE *fp;
printf("Enter a positive integer: ");
scanf("%d", &n);
fp = fopen("out.txt", "w");
if (fp == NULL) {
printf("Error opening file\n");
return -1;
}
for (int i = 1; i <= n; i++) {
if (is_prime(i)) {
fprintf(fp, "%d ", i);
count++;
if (count % 5 == 0) {
fprintf(fp, "\n");
}
}
}
fclose(fp);
return 0;
}
```
这个程序先从标准输入中读取一个正整数n,然后求出[1-n]之间的所有素数,并将素数输出到文件 out.txt 中,每行5个输出。
注意,为了方便起见,这个程序假设文件 out.txt 就在当前目录下,不需要加任何路径。另外,每行输出5个素数,并在素数之间用半角空格分隔,最后每行末尾需要换行。
阅读全文