c语言任意输入10个数,统计素数的个数,并输出这些素数。
时间: 2023-08-31 12:30:40 浏览: 129
### 回答1:
下面是一个简单的 C 语言代码,可以实现输入10个数,统计素数的个数,并输出这些素数:
```
#include <stdio.h>
int isPrime(int num) {
if (num <= 1) {
return 0;
}
for (int i = 2; i < num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int nums[10];
int count = 0;
printf("请输入10个数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &nums[i]);
if (isPrime(nums[i])) {
count++;
}
}
printf("共有 %d 个素数,分别是:\n", count);
for (int i = 0; i < 10; i++) {
if (isPrime(nums[i])) {
printf("%d ", nums[i]);
}
}
printf("\n");
return 0;
}
```
代码中使用了一个名为 `isPrime` 的函数,它用于判断一个数是否为素数。在 `main` 函数中,先定义一个长度为 10 的数组 `nums`,然后通过循环,依次输入 10 个数,并判断它们是否为素数。如果是素数,则将计数器 `count` 的值加 1。最后输出素数的个数和具体的素数值。
### 回答2:
要统计10个数中的素数个数,首先需要判断一个数是否为素数。一个数若只能被1和自身整除,则被称为素数。
我们可以使用以下的方法来判断一个数是否为素数:
1. 从2开始,依次判断该数是否能被2、3、4……一直到根号n的数整除。若此数能被其中任意一个整除,那么该数就不是素数;否则,该数就是素数。
在C语言中,我们可以使用循环和逻辑判断语句实现上述的算法:
```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 nums[10];
int primeCount = 0;
int primeNums[10];
// 输入10个数
for (int i = 0; i < 10; i++) {
printf("请输入第%d个数:", i + 1);
scanf("%d", &nums[i]);
// 判断是否为素数
if (isPrime(nums[i])) {
primeNums[primeCount] = nums[i];
primeCount++;
}
}
// 输出素数
printf("这些素数分别是:");
for (int i = 0; i < primeCount; i++) {
printf("%d ", primeNums[i]);
}
printf("\n共有%d个素数。\n", primeCount);
return 0;
}
```
以上代码先定义了一个函数isPrime用来判断一个数是否为素数。在主函数中,从控制台输入10个数,并判断是否为素数,同时保存素数的个数以及素数本身。最后输出素数和素数的个数。
这样,就可以通过这段C语言代码来任意输入10个数,统计素数的个数,并输出这些素数。
### 回答3:
思路:
1. 定义一个函数isPrime(),用于判断一个数是否为素数。判断方法是从2开始,逐一判断是否能整除。
2. 在主函数中,定义一个数组numbers[10]用于存储输入的10个数。
3. 使用for循环,对numbers数组进行输入值的操作。
4. 定义一个变量count用于记录素数的个数,初始值为0。
5. 使用for循环,遍历numbers数组,对每个数调用isPrime()函数进行判断。
6. 若某个数是素数,则输出该数,并将count加1。
7. 最后输出素数的个数count。
代码如下:
```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 numbers[10];
for(int i = 0; i < 10; i++) {
printf("请输入第%d个数:", i + 1);
scanf("%d", &numbers[i]);
}
int count = 0;
for(int i = 0; i < 10; i++) {
if(isPrime(numbers[i])) {
printf("%d ", numbers[i]);
count++;
}
}
printf("\n素数的个数为:%d\n", count);
return 0;
}
```
这段代码首先定义了一个函数isPrime(),用于判断一个数是否为素数。接着在主函数中定义了一个数组numbers[10]用于存储输入的10个数。使用for循环对numbers数组进行输入值的操作,并在循环内部对每个数调用isPrime()函数进行判断。若某个数是素数,则输出该数,并将count加1。最后输出素数的个数count。
阅读全文