素数元素的个数 题目描述 输入 n 个整数,并存入数组 a,统计输出其中值为素数的元素个数。 输入格式: 在第一行输入一个正整数 n(1<n<=100); 在第一行输入 n 个正整数,数据之间用空格分隔。 输出格式: 输出素数的元素个数。 输入样例: 10 71 39 45 18 87 28 67 91 53 7 输出样例: 4
时间: 2024-01-21 14:17:27 浏览: 47
以下是 Python 代码实现:
```python
import math
n = int(input())
a = list(map(int, input().split()))
count = 0
for i in a:
if i < 2:
continue
is_prime = True
for j in range(2, int(math.sqrt(i))+1):
if i % j == 0:
is_prime = False
break
if is_prime:
count += 1
print(count)
```
首先读入整数 n 和 n 个整数,存储在数组 a 中。接着遍历数组 a,对于每个元素,判断其是否为素数。如果是素数,则计数器 count 加一。最后输出 count 的值即可。判断素数的方法是从 2 到该数的平方根范围内进行遍历,判断是否存在能够整除该数的因子。如果存在,则该数不是素数;否则,该数是素数。在实现过程中,需要注意小于 2 的数不是素数,需要进行特殊处理。
相关问题
编译c语言:输入n个整数,并存入数组a中,统计输出其中值为素数的元素个数
好的,可以给您提供一个C语言代码实现:
```c
#include <stdio.h>
int main() {
int n, count = 0;
printf("请输入数组长度n:");
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++) {
printf("请输入第%d个整数:", i + 1);
scanf("%d", &a[i]);
}
for (int i = 0; i < n; i++) {
int flag = 1;
for (int j = 2; j < a[i]; j++) {
if (a[i] % j == 0) {
flag = 0;
break;
}
}
if (flag && a[i] > 1) {
count++;
}
}
printf("素数的元素个数为:%d\n", count);
return 0;
}
```
该代码首先通过 `scanf()` 函数获取用户输入的数组长度 `n` 和 `n` 个整数,并存储在数组 `a` 中。然后使用两层嵌套的 `for` 循环遍历数组,判断数组中的每个元素是否为素数,如果是素数则计数器 `count` 加一。最后输出 `count` 的值即为数组中素数元素的个数。
需要注意的是,素数的定义是大于1的整数,且只能被1和自身整除。所以在判断素数时需要加上对于1的判断。
用C语言输入 n 个整数,并存入数组 a,统计输出其中值为素数的元素个数。
好的,下面是C语言的代码实现:
```c
#include <stdio.h>
int is_prime(int n) // 判断是否为素数
{
int i;
for (i = 2; i < n; i++)
{
if (n % i == 0)
{
return 0; // 不是素数
}
}
return 1; // 是素数
}
int main()
{
int a[100];
int i, n, count = 0;
printf("请输入整数个数:");
scanf("%d", &n);
printf("请输入%d个整数:\n", n);
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
if (is_prime(a[i])) // 判断是否为素数
{
count++;
}
}
printf("数组中素数元素的个数为:%d\n", count);
return 0;
}
```
以上代码中,我们定义了一个函数is_prime来判断一个数是否为素数。在主函数中,我们首先输入整数个数n和n个整数,并在输入的同时判断是否为素数,若是,则计数器count加1。最后输出数组中素数元素的个数。需要注意的是,我们在判断素数时,只需要从2到该数的平方根进行判断即可,不需要遍历到该数本身。