c语言求出50以内的所有素数,要求把所有素数存储到一个数组当中,最后输出显示。
时间: 2024-05-14 07:17:00 浏览: 38
好的,我可以回答你的问题。以下是一个求50以内所有素数并存储在数组中的C语言程序:
```c
#include <stdio.h>
int main()
{
int n = 50;
int prime[n], count = 0;
int i, j, flag;
for (i = 2; i <= n; i++) {
flag = 0;
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
flag = 1;
break;
}
}
if (flag == 0) {
prime[count] = i;
count++;
}
}
printf("50以内的素数有:");
for (i = 0; i < count; i++) {
printf("%d ", prime[i]);
}
return 0;
}
```
程序的思路是:使用两层循环,第一层循环遍历2到50的数字,第二层循环判断当前数字是否为素数。如果是素数,就将它存储到数组中,并将数组索引值count增加1。最后输出存储了素数的数组。
相关问题
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以内的所有素数存放到一维数组中并输出
好的,我可以为您提供C语言代码实现这个问题:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i*i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int primeNumbers[50];
int index = 0;
for (int i = 2; i <= 200; i++) {
if (isPrime(i)) {
primeNumbers[index] = i;
index++;
}
}
for (int i = 0; i < index; i++) {
printf("%d ", primeNumbers[i]);
}
printf("\n");
return 0;
}
```
这个程序会将200以内的所有素数存储在名为primeNumbers的一维数组中,并将它们输出到屏幕上。
阅读全文