用c语言编程实现:求200~300间的所有素数以及这些素数的个数,将素数存入数组 a 中( a 的容量定义为100),最后以每行4个数从数组中输出这些素数。
时间: 2024-05-12 17:19:36 浏览: 86
```c
#include <stdio.h>
int main() {
int a[100], count = 0;
for (int i = 200; i <= 300; i++) {
int isPrime = 1;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
isPrime = 0;
break;
}
}
if (isPrime) {
a[count++] = i;
}
}
printf("共有%d个素数:\n", count);
for (int i = 0; i < count; i++) {
printf("%d ", a[i]);
if ((i + 1) % 4 == 0) {
printf("\n");
}
}
return 0;
}
```
输出结果:
```
共有16个素数:
211 223 227 229
233 239 241 251
257 263 269 271
277 281 283 293
```
相关问题
用c语言写将200到300之间的素数存入数组中并输出
好的,以下是用 C 语言实现将 200 到 300 之间的素数存入数组并输出的代码:
```c
#include <stdio.h>
#define N 100
int main() {
int i, j, isPrime, count = 0;
int primes[N];
for (i = 200; i <= 300; ++i) {
isPrime = 1;
for (j = 2; j <= i / 2; ++j) {
if (i % j == 0) {
isPrime = 0;
break;
}
}
if (isPrime) {
primes[count] = i;
++count;
}
}
printf("200~300 之间的素数有:%d", primes[0]);
for (i = 1; i < count; ++i) {
printf(", %d", primes[i]);
}
printf(".\n");
return 0;
}
```
程序首先定义了一个大小为 100 的数组 `primes` 用于存储素数,变量 `count` 记录当前已存放素数的个数。然后用双重循环判断在 200 到 300 范围之内的每个数是否为素数,是的话就将其存入数组中。
最后循环输出数组中的素数即可。
用C语言实现:⑴ 编写函数int rev_prime(int m,int n,int x[]),求区间m到n中的所有整数的反序数,将反序数中的素数存入数组x中,函数的返回值是素数的个数。⑵ 编写main函数,接收从键盘输入的m和n的值,调用函数reverse求m到n之间的所有元素的反序数中的素数,将结果数组按以下要求写到输出文件“out.txt”中。
以下是代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
int is_prime(int num) { // 判断是否为素数
if (num < 2) {
return 0;
}
for(int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int reverse(int num) { // 求反序数
int res = 0;
while (num) {
res = res * 10 + num % 10;
num /= 10;
}
return res;
}
int rev_prime(int m, int n, int x[]) { // 求区间m到n中的所有整数的反序数中的素数
int count = 0;
for (int i = m; i <= n; i++) {
int rnum = reverse(i);
if (is_prime(rnum)) {
x[count++] = rnum;
}
}
return count;
}
int main() {
int m, n;
printf("请输入m和n的值:");
scanf("%d%d", &m, &n);
int x[n - m + 1]; // 结果数组
int count = rev_prime(m, n, x); // 调用函数求反序数中的素数
FILE *fp = fopen("out.txt", "w"); // 打开输出文件
if (fp == NULL) {
printf("无法打开文件!\n");
exit(1);
}
fprintf(fp, "区间[%d, %d]中反序数中的素数有:\n", m, n);
for (int i = 0; i < count; i++) {
fprintf(fp, "%d ", x[i]);
}
fclose(fp);
printf("结果已写入out.txt文件中!\n");
return 0;
}
```
注意事项:
1. 代码中使用了文件操作,需要在程序所在目录下创建一个名为“out.txt”的文件,用于输出结果。
2. 反序数中的素数存入的数组 `x` 需要动态申请内存,因此不能直接定义固定长度的数组。
阅读全文