输入10个正整数,统计输出其中素数(即质数)的个数。.c语言
时间: 2023-06-19 16:36:12 浏览: 94
以下是一个统计素数个数的C语言程序:
```c
#include <stdio.h>
int is_prime(int n) {
if (n <= 1) return 0; // 1不是质数,小于等于1的数都不是质数
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return 0; // 如果n能被i整除,则n不是质数
}
return 1; // n是质数
}
int main() {
int n, count = 0;
printf("请输入10个正整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &n);
if (is_prime(n)) count++;
}
printf("其中有 %d 个素数\n", count);
return 0;
}
```
程序中使用了一个 `is_prime` 函数来判断一个数是否是质数。在主函数中,我们输入10个正整数,对于每个输入的数,如果是质数,则将计数器 `count` 加1。最后输出计数器的值即可。
相关问题
编写c语言程序实现输入10个正整数,统计输出其中素数(即质数)的个数。
以下是输入10个正整数,统计输出其中素数(即质数)的数量的C语言代码:
```
#include <stdio.h>
int main() {
int num[10];
int count = 0;
// 输入10个正整数
printf("请输入10个正整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &num[i]);
}
// 判断每个数是否为素数
for (int i = 0; i < 10; i++) {
int is_prime = 1; // 假设该数为素数
// 判断该数是否为素数
for (int j = 2; j < num[i]; j++) {
if (num[i] % j == 0) {
is_prime = 0; // 不是素数
break;
}
}
// 输出素数
if (is_prime && num[i] > 1) {
printf("%d ", num[i]);
count++;
}
}
// 输出素数的数量
printf("\n素数的数量为:%d\n", count);
return 0;
}
```
输入10个正整数后,输出结果如下:
```
请输入10个正整数:
2 3 4 5 6 7 8 9 10 11
2 3 5 7 11
素数的数量为:5
```
用c语言循环实现输入10个正整数,统计输出其中素数(即质数)的个数的问题总结
非常感谢您的提问,以下是问题的总结:
1. 如何使用C语言循环实现输入10个正整数?
答:可以使用一个循环来输入10个正整数,每次读入一个数字并存储到数组中。
2. 如何判断一个正整数是否为素数?
答:可以使用一个循环来判断一个正整数是否为素数,如果该数可以被2到sqrt(n)之间的任意一个数整除,则该数不是素数。
3. 如何统计输入的10个正整数中素数的个数并输出?
答:可以使用一个计数器来统计素数的个数,每次判断一个数字是否为素数时,如果是素数则将计数器加1。最终输出计数器的值即为素数的个数。
下面是解题思路和代码实现:
解题思路:
1. 定义一个数组和一个计数器,用来存储输入的10个正整数和统计素数的个数;
2. 使用一个循环输入10个正整数,并将它们存储到数组中;
3. 使用一个嵌套循环来判断每个数字是否为素数,如果是素数则将计数器加1;
4. 输出素数的个数。
代码实现:
```c
#include <stdio.h>
#include <math.h>
int main() {
int nums[10], count = 0;
int i, j;
for (i = 0; i < 10; i++) {
printf("请输入第%d个正整数:", i+1);
scanf("%d", &nums[i]);
}
for (i = 0; i < 10; i++) {
int flag = 1;
for (j = 2; j <= sqrt(nums[i]); j++) {
if (nums[i] % j == 0) {
flag = 0;
break;
}
}
if (flag && nums[i] != 1) {
count++;
printf("%d ", nums[i]);
}
}
printf("\n一共有%d个素数\n", count);
return 0;
}
```
在上述代码中,我们使用了sqrt函数来计算数字n的平方根,这样可以减少循环的次数,提高程序的效率。同时,我们还特别判断了数字1,因为1既不是素数也不是合数,因此需要特别处理。