C语言把200以内的所有素数存放到一维数组中并输出
时间: 2023-11-26 20:07:20 浏览: 94
以下是C语言代码实现:
```c
#include <stdio.h>
int main() {
int num[200], count = 0;
for (int i = 2; i <= 200; i++) {
int isPrime = 1; // 标记是否为素数
for (int j = 2; j < i; j++) {
if (i % j == 0) {
isPrime = 0;
break;
}
}
if (isPrime) {
num[count] = i;
count++;
}
}
for (int i = 0; i < count; i++) {
printf("%d ", num[i]);
}
printf("\n");
return 0;
}
```
解析:
- 首先定义一个长度为200的一维数组`num`,用于存放素数。
- 然后用两个循环,外层循环从2到200遍历每个数,内层循环从2到该数之前的数逐一判断是否能够整除,若能整除,则说明不是素数,将标记`isPrime`置为0。
- 如果`isPrime`为1,则说明该数是素数,将其存入数组`num`中,并将计数器`count`加1。
- 最后再用一个循环输出素数数组`num`中的元素。
相关问题
c语言把200以内的所有素数存放到一维数组中并输出
### 回答1:
好的,让我来为您解答这个问题。
以下是将200以内的所有素数存储到一维数组中的C语言代码:
```
#include <stdio.h>
int main()
{
int max = 200;
int primes[max];
int count = 0;
for (int i = 2; i <= max; i++) {
int isPrime = 1;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
isPrime = 0;
break;
}
}
if (isPrime == 1) {
primes[count] = i;
count++;
}
}
printf("200以内的素数是:\n");
for (int i = 0; i < count; i++) {
printf("%d ", primes[i]);
}
return 0;
}
```
在这个程序中,我们首先定义了一个名为max的变量,它用于存储我们要找的素数的最大值,这里是200。
接着我们定义了一个名为primes的数组,它将用于存储找到的素数。
我们使用了两个for循环来查找200以内的素数。在内部的循环中,我们逐个测试每个数字是否能被除以小于它的数字整除。如果我们找到了一个能被整除的数字,我们就知道这个数字不是素数,并且我们可以跳出内部循环。
如果一个数字无法被任何小于它的数字整除,我们就将它存储到primes数组中,并递增count变量以便可以追踪存储了多少素数。
最后,我们使用另一个for循环来逐个输出数组中存储的素数。
希望这个代码可以帮助您!
### 回答2:
C语言可以通过以下程序将200以内的所有素数存放到一维数组中,并输出:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int number) {
if (number <= 1) {
return false;
}
for (int i = 2; i <= number / 2; ++i) {
if (number % i == 0) {
return false;
}
}
return true;
}
int main() {
int primes[46]; // 200以内的素数有46个
int index = 0;
for (int i = 2; i <= 200; ++i) {
if (isPrime(i)) {
primes[index] = i;
index++;
}
}
printf("200以内的素数为:\n");
for (int i = 0; i < index; ++i) {
printf("%d ", primes[i]);
}
return 0;
}
```
以上程序使用了两个函数,isPrime函数用于判断一个数是否为素数。该函数首先判断数是否小于等于1,若是,则直接返回false。然后使用for循环从2开始,判断数能否被2到数的一半之间的整数整除,若能,则返回false,否则返回true。在主函数中,通过for循环遍历2到200的数,将素数存放到数组中,并通过循环将素数输出到控制台。最终的输出结果是200以内的所有素数。
### 回答3:
以下是使用C语言编写的程序将所有小于200的素数存放到一维数组中并输出:
```c
#include <stdio.h>
int isPrime(int num) {
if(num < 2) {
return 0;
}
for(int i = 2; i*i <= num; i++) {
if(num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int primeNumbers[200]; // 定义存放素数的数组
int count = 0; // 计数器,用于记录当前已找到的素数数量
for(int i = 2; i < 200; i++) {
if(isPrime(i)) {
primeNumbers[count] = i; // 将素数存入数组
count++;
}
}
printf("200以内的素数有:\n");
for(int i = 0; i < count; i++) {
printf("%d ", primeNumbers[i]); // 输出素数数组的元素
}
printf("\n");
return 0;
}
```
程序中的`isPrime`函数用于判断给定的数是否为素数。在`main`函数中,首先定义一个长度为200的整型数组`primeNumbers`用于存放素数,然后使用一个计数器`count`记录当前已找到的素数数量。接着,使用一个循环从2开始遍历到199,并通过`isPrime`函数判断每个数字是否为素数,如果是素数则将其存入数组`primeNumbers`中,并将计数器`count`自增。最后,使用另一个循环输出数组`primeNumbers`中的素数元素。输出结果即为200以内的所有素数。
用c语言把200以内的所有素数存放到一维数组中并输出
好的,这是一个计算型问题,我可以为您提供解答。以下是将200以内的所有素数存放到一维数组中并输出的C语言代码:
#include <stdio.h>
int main() {
int count = 0; // 记录素数的数量
int primes[46]; // 存放素数的一维数组
for(int i = 2; i <= 200; i++) {
int isPrime = 1; // 判断i是否为素数
for(int j = 2; j < i; j++) {
if(i % j == 0) {
isPrime = 0; // i能被j整除,i不是素数
break;
}
}
if(isPrime) {
primes[count++] = i; // 将i存入数组中
}
}
for(int i = 0; i < count; i++) {
printf("%d ", primes[i]); // 输出素数数组
}
printf("\n共%d个素数", count); // 输出素数数量
return 0;
}
运行结果:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
共46个素数
希望能够解答您的问题。
阅读全文