问题描述 给定若干整数,判断其中素数的个数。素数是指大于1并且只能被1和自身整除的整数。 输入描述 若干个整数 输出描述 按样例格式输出素数的个数 样例输入 1 2 3 4 5 6 7 -8 样例输出 count=4 用c语言编写
时间: 2023-12-29 15:03:01 浏览: 117
以下是用 C 语言编写的程序,实现判断一组整数中素数的个数:
```c
#include <stdio.h>
int is_prime(int n) {
if (n < 2) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n, count = 0;
while (scanf("%d", &n) != EOF) {
if (is_prime(n)) {
count++;
}
}
printf("count=%d\n", count);
return 0;
}
```
程序的主要思路是先实现一个判断素数的函数 `is_prime`,然后在输入一组整数时,对每个整数调用该函数判断是否为素数,并统计素数的个数。最后输出素数的个数即可。
注意,为了避免输入过多的整数导致程序运行时间过长,我们采用了逐个输入并判断的方式,也可以改为一次性输入所有整数再进行判断。
相关问题
给定若干整数,判断其中素数的个数。素数是指大于1并且只能被1和自身整除的整数。 输入描述 若干个整数 输出描述 按样例格式输出素数的个数
好的,那么根据题目要求,我们需要按照样例格式输出素数的个数。假设输入的若干个整数为`2 3 4 5 6 7 8 9`,则输出应该为:
```
素数的个数为: 3
```
代码示例如下:
```python
import math
def count_primes(nums):
primes_count = 0
for num in nums:
if is_prime(num):
primes_count += 1
print("素数的个数为:", primes_count)
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
return False
return True
if __name__ == "__main__":
nums = list(map(int, input().split()))
count_primes(nums)
```
其中,`if __name__ == "__main__":`语句用于判断是否是直接运行该文件,如果是则执行下面的代码。`nums = list(map(int, input().split()))`语句用于输入若干个整数,`map(int, input().split())`语句将输入的字符串转换为整数列表。最后调用`count_primes`函数计算素数的个数并按照样例格式输出。
题目要求给定若干整数,判断其中素数的个数。素数是指大于1并且只能被1和自身整除的整数。
好的,你的问题是如何判断一个整数是否为素数?
判断一个整数是否为素数,可以使用试除法。即从2开始,依次判断该数是否能被2到该数的平方根之间的所有整数整除,如果都不能整除,则该数为素数。如果存在一个因子,那么该数不是素数。
代码示例:
```python
import math
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
return False
return True
```
其中,`math.sqrt(num)`表示num的平方根,`range(2, int(math.sqrt(num)) + 1)`表示从2到num的平方根之间的所有整数。
阅读全文